主页 > 知识库 > postgres 实现查询某条数据的排名

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 的用户对应的积分排名

二、通过 PostgreSQL 的窗口函数实现

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

您可能感兴趣的文章:
  • postgresql数据库根据年月查询出本月的所有数据操作
  • postgresql通过索引优化查询速度操作
  • postgresql查询锁表以及解除锁表操作
  • Postgresql 实现查询一个表/所有表的所有列名

标签:晋城 株洲 蚌埠 珠海 锦州 乌海 来宾 衡阳

巨人网络通讯声明:本文标题《postgres 实现查询某条数据的排名》,本文关键词  postgres,实现,查询,某条,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《postgres 实现查询某条数据的排名》相关的同类信息!
  • 本页收集关于postgres 实现查询某条数据的排名的相关信息资讯供网民参考!
  • 推荐文章