您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關利用postgres 怎么對數據的排名進行查詢,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
select * from (select ROW_NUMBER () OVER (ORDER BY fat desc nulls last) AS xuhao,foodnum,foodname,fat from ek_food where isdel=0) food where foodnum = 'Ss192008'
1.排序時,字段值為null的會排在前面,導致數據不準確,解決辦法 在order by后面增加 nulls last
2.給查詢的結果增加序號 select ROW_NUMBER () OVER (ORDER BY fat desc nulls last) AS xuhao
補充:利用 PostgreSQL 實現對數據進行排名
user_id | name | score |
1 | john | 1000 |
2 | mike | 1200 |
3 | jelly | 1300 |
4 | brook | 1500 |
5 | nanny | 1200 |
需要知道 user_id = k 的用戶對應的積分排名
SELECT user_id, name, score, RANK() OVER (ORDER BY score DESC) FROM user;
user_id | name | score | rank |
4 | brook | 1500 | 1 |
3 | jelly | 1200 | 2 |
2 | mike | 1300 | 3 |
5 | nanny | 1500 | 3 |
1 | john | 1200 | 5 |
如要獲取排名 < 3 的用戶:
SELECT user_id, name, score, user_rank FROM (SELECT user_id, name, score, RANK() OVER (ORDER BY score DESC) AS user_rank FROM user) AS T WHERE user_rank < 3;
-- 注意子查詢在from中需要寫別名
user_id | name | score | rank |
4 | brook | 1500 | 1 |
3 | jelly | 1200 | 2 |
看完上述內容,你們對利用postgres 怎么對數據的排名進行查詢有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。