亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 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()的用法說明的相關信息資訊供網民參考!
  • 推薦文章
    夜夜操天天爽| 国产亚洲男人的天堂在线观看| 999久久66久6只有精品| 九九干| 国产网站麻豆精品视频| 久久99欧美| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 台湾毛片| 香蕉视频三级| 成人免费一级纶理片| 四虎影视库国产精品一区| 四虎久久影院| 日本在线www| 国产伦精品一区二区三区在线观看| 色综合久久天天综合绕观看| 九九精品久久| 黄视频网站免费看| 国产高清在线精品一区二区| 午夜在线影院| 亚欧成人乱码一区二区| 99久久精品国产片| 精品视频一区二区三区免费| 精品视频免费看| 亚欧成人毛片一区二区三区四区| 欧美18性精品| 欧美1卡一卡二卡三新区| 亚欧乱色一区二区三区| 日韩专区第一页| 成人免费观看的视频黄页| 国产一区二区精品在线观看| 成人免费观看的视频黄页| 亚久久伊人精品青青草原2020| 成人a大片在线观看| 中文字幕Aⅴ资源网| 91麻豆精品国产高清在线| 精品久久久久久中文字幕一区 | 国产欧美精品| 精品久久久久久免费影院| 午夜在线影院| 四虎影视精品永久免费网站| 欧美激情一区二区三区视频 | 深夜做爰性大片中文| 亚洲精品影院久久久久久| 精品视频一区二区三区免费| 成人影视在线观看| 九九精品在线| 久草免费在线观看| 尤物视频网站在线| 国产精品免费久久| 日韩免费在线观看视频| 中文字幕Aⅴ资源网| 免费毛片播放| 免费的黄色小视频| 精品国产一区二区三区久久久狼| 高清一级毛片一本到免费观看| 国产亚洲精品成人a在线| 国产一区二区精品| 欧美日本韩国| 日本在线不卡免费视频一区| 九九久久99综合一区二区| 成人免费观看的视频黄页| a级毛片免费观看网站| 99久久精品国产高清一区二区 | 国产91素人搭讪系列天堂| 欧美爱色| 久久99这里只有精品国产| 精品国产一区二区三区久| 久久99欧美| 国产美女在线观看| 成人高清视频免费观看| 91麻豆tv| 欧美激情一区二区三区在线| 国产网站免费在线观看| 一本伊大人香蕉高清在线观看| 亚洲第一色在线| 日本特黄一级| 一级女性大黄生活片免费| 国产高清在线精品一区二区| 国产成人啪精品| 国产麻豆精品hdvideoss| 国产a毛片| 久久国产一久久高清| 精品国产三级a| 黄色短视频网站| 国产美女在线一区二区三区| 香蕉视频久久| 国产国产人免费视频成69堂| 亚洲女初尝黑人巨高清在线观看| 免费一级片网站| 日韩一级精品视频在线观看| 国产成人精品综合在线| 九九精品在线| 超级乱淫黄漫画免费| 日本免费区| 91麻豆高清国产在线播放| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 欧美大片a一级毛片视频| 欧美1区| 欧美日本免费| 美女免费精品高清毛片在线视| 一级毛片视频在线观看| 国产伦久视频免费观看 视频| 九九久久国产精品大片| 久久精品店| 精品久久久久久免费影院| 成人a大片在线观看| 亚洲精品久久玖玖玖玖| 精品视频在线观看视频免费视频| 久久成人综合网| 日本免费看视频| 四虎影视久久久| 日本免费看视频| 一本高清在线| 天天做人人爱夜夜爽2020| 精品久久久久久中文字幕一区| 免费国产在线视频| 亚洲精品永久一区| 午夜精品国产自在现线拍| 久久国产影院| 日日夜人人澡人人澡人人看免| 国产一区二区高清视频| 黄视频网站免费观看| 成人影视在线播放| 欧美激情一区二区三区在线 | 精品视频在线观看视频免费视频| 天天做人人爱夜夜爽2020| 午夜久久网| 日韩专区第一页| 久久久成人网| 日韩字幕在线| 青青青草影院 | 日日日夜夜操| 亚洲精品影院久久久久久| 国产成人啪精品视频免费软件| 欧美另类videosbestsex久久| 久久精品店| 国产视频久久久久| a级毛片免费观看网站| 毛片成人永久免费视频| 欧美大片a一级毛片视频| a级黄色毛片免费播放视频| 国产网站免费观看| 日韩在线观看免费| 黄视频网站免费观看| 国产一区二区精品尤物| 91麻豆精品国产自产在线观看一区| 久久精品道一区二区三区| 久久精品免视看国产明星| 久久精品道一区二区三区| 成人免费观看的视频黄页| 国产精品免费精品自在线观看| 深夜做爰性大片中文| 四虎论坛| 国产一区精品| 四虎论坛| 毛片高清| 日日日夜夜操| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产一级强片在线观看| 精品在线免费播放| 欧美激情影院| 黄色免费网站在线| 99色视频在线| 欧美一区二区三区性| 免费的黄视频| 精品国产亚洲人成在线| 久久精品店| 一本伊大人香蕉高清在线观看| 久久国产精品自线拍免费| 国产欧美精品| 999久久狠狠免费精品| 黄视频网站免费| 久久福利影视| 日韩中文字幕在线播放| 香蕉视频一级| 夜夜操天天爽| 久久国产精品自由自在| 午夜在线影院| 午夜在线观看视频免费 成人| 欧美激情影院| 黄视频网站在线免费观看| 美女被草网站| 免费国产在线观看不卡| 久久成人亚洲| 精品美女| 欧美激情一区二区三区在线 | 可以在线看黄的网站| 精品视频在线观看免费| 99热精品在线| 欧美a级成人淫片免费看| 超级乱淫伦动漫| 精品视频一区二区三区免费| 精品国产一区二区三区精东影业 | 99热热久久| 国产不卡在线播放| 精品国产一区二区三区精东影业 | 国产视频一区二区在线播放| 国产伦精品一区三区视频| 一级女人毛片人一女人| 日韩在线观看免费完整版视频|