postgres 實(shí)現(xiàn)查詢某條數(shù)據(jù)的排名
我就廢話不多說(shuō)了,大家還是直接看代碼吧~
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'
涉及到的問(wèn)題
1.排序時(shí),字段值為null的會(huì)排在前面,導(dǎo)致數(shù)據(jù)不準(zhǔn)確,解決辦法 在order by后面增加 nulls last
2.給查詢的結(jié)果增加序號(hào) select ROW_NUMBER () OVER (ORDER BY fat desc nulls last) AS xuhao
補(bǔ)充:利用 PostgreSQL 實(shí)現(xiàn)對(duì)數(shù)據(jù)進(jìn)行排名
一、需求:對(duì)以下用戶的積分進(jìn)行排名計(jì)算
| user_id | name | score |
| 1 | john | 1000 |
| 2 | mike | 1200 |
| 3 | jelly | 1300 |
| 4 | brook | 1500 |
| 5 | nanny | 1200 |
需要知道 user_id = k 的用戶對(duì)應(yīng)的積分排名
二、通過(guò) PostgreSQL 的窗口函數(shù)實(shí)現(xiàn)
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;
-- 注意子查詢?cè)趂rom中需要寫別名
| user_id | name | score | rank |
| 4 | brook | 1500 | 1 |
| 3 | jelly | 1200 | 2 |
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
PostgreSQL 更新視圖腳本的注意事項(xiàng)說(shuō)明
這篇文章主要介紹了PostgreSQL 更新視圖腳本的注意事項(xiàng)說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
Windows?環(huán)境搭建?PostgreSQL?邏輯復(fù)制高可用架構(gòu)數(shù)據(jù)庫(kù)服務(wù)
本文主要介紹Windows下搭建PostgreSQL的主從邏輯復(fù)制,關(guān)于PostgreSQl的相關(guān)運(yùn)維文章,網(wǎng)絡(luò)上大多都是?Linux?環(huán)境下的操作,鮮有在?Windows?環(huán)境下配置的教程,所以本文采用?Windows?環(huán)境作為演示系統(tǒng)來(lái)進(jìn)行?PostgreSQL?高可用數(shù)據(jù)庫(kù)服務(wù)的搭建,感興趣的朋友一起看看吧2023-05-05
postgresql rank() over, dense_rank(), row_number()用法區(qū)別
這篇文章主要介紹了postgresql rank() over, dense_rank(), row_number()的用法區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
PostgreSQL教程(十三):數(shù)據(jù)庫(kù)管理詳解
這篇文章主要介紹了PostgreSQL教程(十三):數(shù)據(jù)庫(kù)管理詳解,本文講解了概述、創(chuàng)建數(shù)據(jù)庫(kù)、修改數(shù)據(jù)庫(kù)配置、刪除數(shù)據(jù)庫(kù)、表空間,需要的朋友可以參考下2015-05-05
詳解PostgreSQL 語(yǔ)法中關(guān)鍵字的添加
這篇文章主要介紹了詳解PostgreSQL 語(yǔ)法中關(guān)鍵字的添加的相關(guān)資料,這里說(shuō)明下在parser語(yǔ)法解析模塊添加關(guān)鍵字,需要的朋友可以參考下2017-08-08
PostgreSQL 數(shù)據(jù)庫(kù)跨版本升級(jí)常用方案解析
這篇文章主要介紹了PostgreSQL 數(shù)據(jù)庫(kù)跨版本升級(jí)常用方案解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03

