校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > PostgreSQL ROW_NUMBER() OVER()的用法說明

PostgreSQL ROW_NUMBER() OVER()的用法說明

熱門標簽:濟南外呼網絡電話線路 電話機器人怎么換人工座席 移動外呼系統模擬題 400電話申請客服 地圖標注要花多少錢 廣州電銷機器人公司招聘 電銷機器人能補救房產中介嗎 天津開發區地圖標注app 江蘇400電話辦理官方

語法:

ROW_NUMBER() OVER( [ PRITITION BY col1] ORDER BY col2[ DESC ] )

解釋:

ROW_NUMBER()為返回的記錄定義個行編號, PARTITION BY col1 是根據col1分組,ORDER BY col2[ DESC ]是根據col2進行排序。

舉例:

postgres=# create table student(id serial,name character varying,course character varying,score integer);
CREATE TABLE
postgres=# 
postgres=# \d student
    Table "public.student"
 Column | Type |   Modifiers   
--------+-------------------+----------------------------------------------
 id | integer  | not null default nextval('student_id_seq'::regclass)
 name | character varying | 
 course | character varying | 
 score | integer  | 
 insert into student (name,course,score) values('周潤發','語文',89);
 insert into student (name,course,score) values('周潤發','數學',99);
 insert into student (name,course,score) values('周潤發','外語',67);
 insert into student (name,course,score) values('周潤發','物理',77);
 insert into student (name,course,score) values('周潤發','化學',87);
 insert into student (name,course,score) values('周星馳','語文',91);
 insert into student (name,course,score) values('周星馳','數學',81);
 insert into student (name,course,score) values('周星馳','外語',88);
 insert into student (name,course,score) values('周星馳','物理',68);
 insert into student (name,course,score) values('周星馳','化學',83);
 insert into student (name,course,score) values('黎明','語文',85);
 insert into student (name,course,score) values('黎明','數學',65);
 insert into student (name,course,score) values('黎明','外語',95);
 insert into student (name,course,score) values('黎明','物理',90);
 insert into student (name,course,score) values('黎明','化學',78);

1. 根據分數排序

postgres=# select *,row_number() over(order by score desc)rn from student;
 id | name | course | score | rn 
----+--------+--------+-------+----
 2 | 周潤發 | 數學 | 99 | 1
 13 | 黎明 | 外語 | 95 | 2
 6 | 周星馳 | 語文 | 91 | 3
 14 | 黎明 | 物理 | 90 | 4
 1 | 周潤發 | 語文 | 89 | 5
 8 | 周星馳 | 外語 | 88 | 6
 5 | 周潤發 | 化學 | 87 | 7
 11 | 黎明 | 語文 | 85 | 8
 10 | 周星馳 | 化學 | 83 | 9
 7 | 周星馳 | 數學 | 81 | 10
 15 | 黎明 | 化學 | 78 | 11
 4 | 周潤發 | 物理 | 77 | 12
 9 | 周星馳 | 物理 | 68 | 13
 3 | 周潤發 | 外語 | 67 | 14
 12 | 黎明 | 數學 | 65 | 15
(15 rows)

rn是給我們的一個排序。

2. 根據科目分組,按分數排序

postgres=# select *,row_number() over(partition by course order by score desc)rn from student;
 id | name | course | score | rn 
----+--------+--------+-------+----
 5 | 周潤發 | 化學 | 87 | 1
 10 | 周星馳 | 化學 | 83 | 2
 15 | 黎明 | 化學 | 78 | 3
 13 | 黎明 | 外語 | 95 | 1
 8 | 周星馳 | 外語 | 88 | 2
 3 | 周潤發 | 外語 | 67 | 3
 2 | 周潤發 | 數學 | 99 | 1
 7 | 周星馳 | 數學 | 81 | 2
 12 | 黎明 | 數學 | 65 | 3
 14 | 黎明 | 物理 | 90 | 1
 4 | 周潤發 | 物理 | 77 | 2
 9 | 周星馳 | 物理 | 68 | 3
 6 | 周星馳 | 語文 | 91 | 1
 1 | 周潤發 | 語文 | 89 | 2
 11 | 黎明 | 語文 | 85 | 3
(15 rows)

3. 獲取每個科目的最高分

postgres=# select * from(select *,row_number() over(partition by course order by score desc)rn from student)t where rn=1;
 id | name | course | score | rn 
----+--------+--------+-------+----
 5 | 周潤發 | 化學 | 87 | 1
 13 | 黎明 | 外語 | 95 | 1
 2 | 周潤發 | 數學 | 99 | 1
 14 | 黎明 | 物理 | 90 | 1
 6 | 周星馳 | 語文 | 91 | 1
(5 rows)

4. 每個科目的最低分也是一樣的

postgres=# select * from(select *,row_number() over(partition by course order by score)rn from student)t where rn=1;
 id | name | course | score | rn 
----+--------+--------+-------+----
 15 | 黎明 | 化學 | 78 | 1
 3 | 周潤發 | 外語 | 67 | 1
 12 | 黎明 | 數學 | 65 | 1
 9 | 周星馳 | 物理 | 68 | 1
 11 | 黎明 | 語文 | 85 | 1
(5 rows)

只要在根據科目排序的時候按低到高順序排列就好了。

補充:SQL:postgresql中為查詢結果增加一個自增序列之ROW_NUMBER () OVER ()的使用

舉例說明:

SELECT ROW_NUMBER
 () OVER ( ORDER BY starttime DESC ) "id",
 starttime AS "text",
 starttime 
FROM
 warning_products 
WHERE
 pid_model = '結果' 
 AND starttime IS NOT NULL 
GROUP BY
 starttime

在這一段代碼中:

查詢語句就不說了, select …from…where

GROUP BY的作用:

這一段代碼執行的結果是:

如果將GROUP BY刪除,那么執行結果為:

可以看到查詢出了兩個相同starttime數據.

由此得出:

GROUP BY的作用是分類匯總.也就是說,查詢結果中,starttime每一種查詢結果只有一個

GROUP BY的作用:

如果將DESC換成

 () OVER ( ORDER BY starttime ASC ) "id",

則運行結果為:

相比可以發現,ORDER BY的作用為進行排序.

按照某種要求進行固定的排序

ROW_NUMBER () OVER() “id”

先來看一下,如果把這一段刪掉,運行結果:

加上呢?

明顯的對比,我們為最終的查詢結果增加了一列自增的id序列(這里id可以改名,"id"改為其他的即可)

由此得到結論,在執行帶有row_number() over() "xx"的SQL語句時候,代碼會先執行查詢語句,然后執行over中的命令,最后為結果增加一列自增的序列.

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • MYSQL row_number()與over()函數用法詳解
  • postgreSQL中的row_number() 與distinct用法說明
  • postgresql rank() over, dense_rank(), row_number()用法區別
  • MySQL中row_number的實現過程
  • SQL Server中row_number函數的常見用法示例詳解
  • sql四大排名函數之ROW_NUMBER、RANK、DENSE_RANK、NTILE使用介紹
  • sql ROW_NUMBER()與OVER()方法案例詳解

標簽:溫州 寶雞 昭通 海西 榆林 濮陽 辛集 杭州

巨人網絡通訊聲明:本文標題《PostgreSQL ROW_NUMBER() OVER()的用法說明》,本文關鍵詞  PostgreSQL,ROW,NUMBER,OVER,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PostgreSQL ROW_NUMBER() OVER()的用法說明》相關的同類信息!
  • 本頁收集關于PostgreSQL ROW_NUMBER() OVER()的用法說明的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    91.com视频| 精品在线观看免费| 欧美综合天天夜夜久久| 一区二区三区在线免费播放| 色婷婷av一区二区三区软件| 亚洲国产综合在线| 欧美一卡在线观看| 国产九九视频一区二区三区| 国产欧美1区2区3区| 91香蕉视频mp4| 国产精品 欧美精品| 国产人成一区二区三区影院| 99国产一区二区三精品乱码| 亚洲午夜在线视频| 欧美一区中文字幕| 国产精品一二三四| 亚洲色图欧美激情| 国产亚洲女人久久久久毛片| 色综合激情五月| 男人操女人的视频在线观看欧美| 欧美精品一区二区高清在线观看| 国产黄人亚洲片| 亚洲精品v日韩精品| 日韩写真欧美这视频| 国产91对白在线观看九色| 一区二区三区蜜桃| 久久视频一区二区| 欧美午夜免费电影| 国产精品一二三在| 亚洲第一会所有码转帖| 精品电影一区二区三区| 一本到不卡免费一区二区| 久久er精品视频| 亚洲最色的网站| 久久久久久亚洲综合| 在线看国产一区二区| 国产精品亚洲一区二区三区妖精| 亚洲乱码中文字幕| 久久精品欧美日韩精品 | 粉嫩av亚洲一区二区图片| 亚洲成人精品一区| 国产精品欧美久久久久一区二区| 91麻豆精品国产| 日本高清不卡视频| 国产成人久久精品77777最新版本| 亚洲成人tv网| 亚洲精品水蜜桃| 欧美韩国日本一区| 亚洲日本一区二区| 久久一留热品黄| 91精品在线麻豆| 色88888久久久久久影院按摩| 国产一区二区看久久| 视频精品一区二区| 一区二区三区精品| 中文字幕日韩av资源站| 精品国精品国产| 日韩三级伦理片妻子的秘密按摩| 欧美色成人综合| 欧亚洲嫩模精品一区三区| 成人久久18免费网站麻豆| 国产综合色精品一区二区三区| 免费亚洲电影在线| 日韩影院在线观看| 日韩精品成人一区二区三区| 亚洲综合免费观看高清完整版在线 | 在线视频国产一区| 不卡电影免费在线播放一区| 韩国av一区二区三区四区| 欧美a一区二区| 蜜桃精品视频在线观看| 亚洲午夜一二三区视频| 亚洲精品成人精品456| 亚洲欧美另类在线| 最新国产の精品合集bt伙计| 国产精品夫妻自拍| 中文字幕亚洲不卡| 亚洲成av人片www| 亚洲精品中文在线影院| 一区av在线播放| 亚洲bdsm女犯bdsm网站| 无吗不卡中文字幕| 日韩电影免费在线看| 日韩av网站在线观看| 蜜桃91丨九色丨蝌蚪91桃色| 精品在线免费观看| 成人综合日日夜夜| 91在线国产福利| 久久久国产精品不卡| 欧美日本乱大交xxxxx| 色婷婷综合五月| 成人精品一区二区三区四区| 激情伊人五月天久久综合| 洋洋成人永久网站入口| 中文字幕av一区 二区| 国产情人综合久久777777| 正在播放亚洲一区| 欧美久久久久久久久| 91精品国产综合久久精品图片| 欧美一区2区视频在线观看| 国产一区二区三区久久久| 大尺度一区二区| 色老汉一区二区三区| 欧美猛男超大videosgay| 欧美日韩第一区日日骚| 久久久精品影视| 亚洲综合精品久久| 久久69国产一区二区蜜臀| 国产suv精品一区二区6| 91性感美女视频| 日韩视频免费直播| 国产精品视频免费看| 性欧美疯狂xxxxbbbb| 国产精品一二三区| 欧美视频一区二| 国产亚洲欧美色| 图片区小说区区亚洲影院| 国产一区美女在线| 在线亚洲欧美专区二区| 久久午夜羞羞影院免费观看| 日韩伦理电影网| 免费看日韩a级影片| 99国产精品久久久久久久久久久| 欧美一级夜夜爽| 亚洲人亚洲人成电影网站色| 麻豆精品在线播放| 日本黄色一区二区| 国产日韩欧美精品在线| 午夜一区二区三区视频| 成人深夜视频在线观看| 日韩一区二区三区高清免费看看| 最新日韩av在线| 国产中文字幕精品| 欧美人体做爰大胆视频| 国产精品九色蝌蚪自拍| 青娱乐精品视频| 欧美综合在线视频| 亚洲欧美在线高清| 国产成人啪午夜精品网站男同| 欧美久久高跟鞋激| 亚洲综合色噜噜狠狠| 成人18视频在线播放| 久久综合av免费| 蜜桃av一区二区| 欧美肥妇bbw| 亚洲一区二区偷拍精品| 91免费精品国自产拍在线不卡| 337p粉嫩大胆色噜噜噜噜亚洲| 日韩av中文字幕一区二区| 欧美天堂一区二区三区| 亚洲欧洲中文日韩久久av乱码| 国产v综合v亚洲欧| 国产日韩欧美电影| 国产一区二区三区黄视频 | 精品精品国产高清a毛片牛牛 | 99国产精品久久久久久久久久久 | 自拍av一区二区三区| 国产精品 日产精品 欧美精品| 欧美不卡一区二区三区四区| 日本在线不卡视频| 欧美日韩第一区日日骚| 午夜精品福利久久久| 精品视频免费看| 午夜久久电影网| 欧洲精品一区二区| 亚洲成av人影院| 欧美丰满嫩嫩电影| 免费观看成人av| 精品国产乱码久久久久久浪潮 | 国产综合成人久久大片91| 日韩精品一区在线| 精品影视av免费| 久久午夜老司机| 国产不卡在线视频| 中文字幕一区二区三区在线不卡| 成+人+亚洲+综合天堂| 中文字幕综合网| 一本大道久久a久久综合| 亚洲一区电影777| 欧美疯狂做受xxxx富婆| 激情小说亚洲一区| 中文字幕免费一区| 91免费版在线| 亚洲成人自拍偷拍| 日韩精品在线一区| 国产99久久久国产精品潘金网站| 国产精品欧美久久久久一区二区| 99久久精品国产一区| 亚洲主播在线播放| 91精品国产手机| 国产成人在线视频网站| 亚洲精品中文在线| 欧美一区二区三区免费视频| 国产精品一区二区三区乱码| 国产精品初高中害羞小美女文| 欧美手机在线视频| 国产在线乱码一区二区三区| 亚洲欧美日韩精品久久久久| 欧美人与z0zoxxxx视频| 国产成人免费视频网站高清观看视频 |