统计订单总数并列出排名

这是统计订单金额,并倒序列出,但还没有排名

SELECT sum(price) as total,uid FROM order WHERE paid = 1 GROUP BY uid ORDER BY total desc

下面的就增加了排名,其实就是把上面的作为子查询查出

*注:*1、 SELECT @rownum := 0:表示对rownum赋初始值0

2、@rownum := @rownum + 1:表示对rownum加1,语句中会从1开始,每一行往下都自动加1

SELECT A.*, @rank:=@rank+1 AS pm FROM (SELECT sum(price) as total,uid FROM order WHERE paid = 1 GROUP BY uid ORDER BY total desc) A, (SELECT @rank:=0) B;

如果想查询指定用户的排名

SELECT C.* FROM (SELECT A.*, @rank:=@rank+1 AS pm FROM (SELECT sum(total_price_kd) as total,uid FROM eb_store_order WHERE paid = 1 GROUP BY uid ORDER BY total desc) A, (SELECT @rank:=0) B) C where uid =10086

相关推荐
TiAmo zhang4 小时前
SQL Server 2019实验 │ 安装及其管理工具的使用
数据库·sqlserver
MZZDX5 小时前
MySQL相关知识总结
数据库·mysql
青山撞入怀11147 小时前
sql题目练习——聚合函数
数据库·sql
disanleya7 小时前
MySQL默认端口为何是3306?修改后如何管理?
数据库·mysql·adb
川石课堂软件测试10 小时前
MySQL数据库之DBA命令
数据库·网络协议·mysql·http·单元测试·prometheus·dba
ybb_ymm12 小时前
mysql8在linux下的默认规则修改
linux·运维·数据库·mysql
倔强的石头_12 小时前
Navicat Premium 与金仓数据库融合实践:高效管理国产数据库新方案
数据库
程序新视界13 小时前
为什么要尽量将MySQL表字段要设置为NOT NULL?
数据库·mysql·dba