佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > postgres 實現(xiàn)查詢某條數(shù)據(jù)的排名

postgres 實現(xiàn)查詢某條數(shù)據(jù)的排名

熱門標(biāo)簽:服務(wù)外包 百度競價排名 地方門戶網(wǎng)站 呼叫中心市場需求 Linux服務(wù)器 網(wǎng)站排名優(yōu)化 AI電銷 鐵路電話系統(tǒng)

我就廢話不多說了,大家還是直接看代碼吧~

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的會排在前面,導(dǎo)致數(shù)據(jù)不準(zhǔn)確,解決辦法 在order by后面增加 nulls last

2.給查詢的結(jié)果增加序號 select ROW_NUMBER () OVER (ORDER BY fat desc nulls last) AS xuhao

補(bǔ)充:利用 PostgreSQL 實現(xiàn)對數(shù)據(jù)進(jìn)行排名

一、需求:對以下用戶的積分進(jìn)行排名計算

user_id name score
1 john 1000
2 mike 1200
3 jelly 1300
4 brook 1500
5 nanny 1200

需要知道 user_id = k 的用戶對應(yīng)的積分排名

二、通過 PostgreSQL 的窗口函數(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;

-- 注意子查詢在from中需要寫別名

user_id name score rank
4 brook 1500 1
3 jelly 1200 2

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

您可能感興趣的文章:
  • postgresql數(shù)據(jù)庫根據(jù)年月查詢出本月的所有數(shù)據(jù)操作
  • postgresql通過索引優(yōu)化查詢速度操作
  • postgresql查詢鎖表以及解除鎖表操作
  • Postgresql 實現(xiàn)查詢一個表/所有表的所有列名

標(biāo)簽:衡水 湖南 湘潭 蘭州 黃山 仙桃 銅川 崇左

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《postgres 實現(xiàn)查詢某條數(shù)據(jù)的排名》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    唐山市| 澄城县| 綦江县| 鄂尔多斯市| 广德县| 安义县| 介休市| 安国市| 扎兰屯市| 共和县| 昌都县| 西青区| 建始县| 东乌珠穆沁旗| 宣汉县| 宜兰市| 遂昌县| 文化| 手机| 翁牛特旗| 吉安市| 武汉市| 噶尔县| 古浪县| 扎鲁特旗| 古交市| 庆阳市| 元谋县| 五大连池市| 南京市| 石门县| 合肥市| 八宿县| 大英县| 祁门县| 甘德县| 平阴县| 巴马| 嘉义县| 盘锦市| 东港市|