我有一个名为user_pin_tags
的下表,其中包含以下需要查询和显示不同标记的数据以及每个数据的计数:
| user_id | pin_id | tag_id |
+---------+--------+--------+
1 | 34 | 7
2 | 34 | 7
3 | 34 | 15
4 | 34 | 16
5 | 34 | 16
6 | 34 | 16
现在我使用以下查询来获取不同的tag_ids
SELECT DISTINCT tag_id
FROM user_pin_tags
WHERE pin_id = 34
给出结果:
| tag_id |
+--------+
7
15
16
我需要修改此查询以提供不同的tag_ids以及该pin_id中的计数,因此我想生成此结果集:
| tag_id | count |
+--------+-------+
7 | 2
15 | 1
16 | 3
如何修改此查询以实现此目的?
答案 0 :(得分:3)
SELECT tag_id, COUNT(*) AS total
FROM user_pin_tags
WHERE pin_id = 34
GROUP BY tag_id
答案 1 :(得分:2)
SELECT
DISTINCT(tag_id)
,count(pin_id)
FROM user_pin_tags
WHERE pin_id = 34
GROUP BY tag_id
Group By应该这样做......我想。
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html
答案 2 :(得分:1)
您可以按tag_id进行分组:
SELECT tag_id, COUNT(pin_id)
FROM user_pin_tags
WHERE pin_id = 34
GROUP BY tag_id