我有类似以下示例的交易数据:
Name | Price
George | 20
George | 20
George | 20
George | 30
Paul | 20
Paul | 20
Paul | 30
Paul | 30
Paul | 35
我需要按用户分组并通常按交易数量进行排序,但在该组用户中,还需要按该价格下的交易量按价格排序来分组。
我需要这个结果:
Name | Price | Count
Paul | 20 | 2
Paul | 30 | 2
Paul | 35 | 1
George | 20 | 3
George | 30 | 1
更新
它在MySQL 5.5数据库中。我需要在Laravel中使查询流利,但是在SQL中拥有它是一个很大的进步。
提前致谢。
最佳答案
SELECT t1.*
FROM ( SELECT name,
price,
COUNT(*) cnt
FROM srctable
GROUP BY name, price ) t1
JOIN ( SELECT name,
COUNT(*) tcnt
FROM srctable
GROUP BY name ) t2 USING (name)
ORDER BY tcnt DESC,
cnt DESC;
fiddle
关于mysql - 组内的SQL组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59684895/