alex_lo

导航

MYSQL 分组排序

http://www.cnblogs.com/merru/articles/4626045.html

 

 

SELECT a.shop_id, a.price, count(*) as rank
FROM mygoods a
JOIN mygoods b ON a.shop_id=b.shop_id AND a.price <= b.price
GROUP BY a.shop_id, a.price
ORDER BY a.shop_id,a.price desc

 

通过自连接 ,比例用排序字段的大小比较和count(*) 获得 满足 条件的熟练,即等价于 row_num

A 1

A 2

A 3

 

自连接结果

a.1 a.2 b.1 b.2

A 1 A 1

A 1 A 2

A 1 A 3

A 2 A 1

A 2 A 2

A 2 A 3

A 3 A 1

A 3 A 2

A 3 A 3

a表里面的 第一二个字段做分组,求和。

同时满足  a2 <= b2 

则 符合条件的结果

A 1 A 1 对

A 1 A 2 对

A 1 A 3 对

A 2 A 1 错

A 2 A 2 对

A 2 A 3 对

A 3 A 1 错

A 3 A 2 错

A 3 A 3 对

统计结果

A 1 3个

A 2 2个

A 3 1个

 

posted on 2016-09-17 14:55  alex_lo  阅读(1534)  评论(0编辑  收藏  举报