【发布时间】:2020-06-03 12:59:10
【问题描述】:
我正在尝试仅获得按类别分组的前 3 名销售产品(按每个类别在交易 (id) count(id) 中出现的前 3 名产品)。我一直在寻找可能的解决方案,但没有结果。看起来它在 MySQL 中有点棘手,因为不能简单地使用 top() 函数等等。示例数据结构如下:
+--------+------------+-----------+
| id |category_id | product_id|
+--------+------------+-----------+
| 1 | 10 | 32 |
| 2 | 10 | 34 |
| 3 | 10 | 32 |
| 4 | 10 | 21 |
| 5 | 10 | 100 |
| 6 | 7 | 101 |
| 7 | 7 | 39 |
| 8 | 7 | 41 |
| 9 | 7 | 39 |
+--------+------------+-----------+
【问题讨论】:
标签: mysql sql group-by greatest-n-per-group