- 您需要使用带有
Group By 的两级选择查询。子选择查询也称为Derived Table。
- 在内部选择查询中,获取每位用户的总获胜次数。
- 现在,在外部选择中,
Group By 获得总胜数,并为他们计算用户数。
尝试以下方法:
SELECT
dt.total_wins AS wins,
COUNT(*) AS players_count
FROM
(
SELECT
user_id,
COUNT(*) AS total_wins
FROM a
WHERE status = 'win'
GROUP BY user_id
) AS dt
GROUP BY dt.total_wins
架构 (MySQL v5.7)
CREATE TABLE a (status VARCHAR(255), user_id int);
INSERT INTO a (status, user_id)
VALUES ('win', 1),
('win', 2),
('win', 3),
('win', 2),
('win', 4),
('win', 4),
('win', 1),
('not win', 1);
查询结果
| wins | players_count |
| ---- | ------------- |
| 1 | 1 |
| 2 | 3 |
View on DB Fiddle