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;
我有一个 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;