统计订单总数并列出排名
这是统计订单金额,并倒序列出,但还没有排名
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