mysql - 组内的 SQL 组
问题描述
我有像这个例子这样的交易数据:
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;
推荐阅读
- javascript - Testcafe - 处理视频
- c# - NopCommerce 源代码部署显示:InvalidOperationException: No database provider has been configured for this DbContext
- c# - 如何在 VB.NET 中使用 Linq 从数据中获取数据透视表?
- reactjs - 当道具从父级更改时更新受控组件
- javascript - 带有静态 Getter 的 Mongoose ES6 类
- python - pandas 包含来自两列的唯一值
- sql - 结合两个插入和更新 sql 请求
- python - ValueError:无法将大小为 230 的数组重塑为形状 (3,600,800)
- java - maven-shade-plugin:如何将所有依赖项和自定义本地 jar 添加到可执行 jar?
- javascript - 折叠展开的 html 表格