Select 不同并计算行数

Select distinct and count number of rows

我有一个 table 这种结构

+----------+----------+
| user_id  | tema_id  |
+----------+----------+
|        1 |    1     |
|        2 |    1     |
|        3 |    2     |
|        4 |    3     |
|        5 |    2     |
|        6 |    3     |
|        7 |    1     |
+----------+----------+

我只想在一个查询中得到tema_id的不同tema_id的总数。我有这个查询,但它 returns 不同 tema_id 但计数列为一而不是 tema_id.

的总数
SELECT tema_id, COUNT(DISTINCT(tema_id)) as total
FROM push_subscriptions
GROUP BY tema_id

Return这个:

+----------+----------+
| tema_id  | total    |
+----------+----------+
|        1 |    1     | -> must be 3
|        2 |    1     | -> must be 2
|        3 |    1     | -> must be 2
+----------+----------+

谢谢

一个简单的 count(*) 应该可以解决问题:

select tema_id, count(*) as total
from push_subscriptions
group by tema_id;

Fiddle