【发布时间】:2011-07-19 18:32:20
【问题描述】:
我正在尝试获取有关用户赢得的独特奖品数量的报告。 IE。玩家如何赢得所有 3 个奖项,有多少人赢得了 2 个奖项,等等。
+--------+--------+
| player | prize |
+--------+--------+
| 1 | 1 |
+--------+--------+
| 1 | 1 |
+--------+--------+
| 1 | 2 |
+--------+--------+
| 1 | 3 |
+--------+--------+
| 2 | 1 |
+--------+--------+
| 2 | 2 |
+--------+--------+
我需要的报告应该是这样的:
+-----------+------------+
| prize_qty | player_qty |
+-----------+------------+
| 3 | 1 |
+-----------+------------+
| 2 | 1 |
+-----------+------------+
以下代码关闭:
SELECT DISTINCT COUNT(*) as player_qty, prize_qty FROM
(SELECT count( * ) AS prize_qty FROM `prizes` GROUP BY player)
as t1 GROUP BY player_qty
但它会返回:
+-----------+------------+
| prize_qty | player_qty |
+-----------+------------+
| 4 | 1 |
+-----------+------------+
| 2 | 1 |
+-----------+------------+
我需要它来忽略 #1 玩家两次赢得 #1 奖品,但我不确定如何进一步消除重复。
【问题讨论】: