2

次のデータを使用して次のテーブルを呼び出し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_id とその pin_id 内のカウントを指定する必要があるため、次の結果セットを生成します。

| tag_id | count |
+--------+-------+
    7    |   2
    15   |   1
    16   |   3

これを達成するためにこのクエリを変更するにはどうすればよいですか?

4

3 に答える 3

3

とを使用COUNT(*)GROUP BYます。

SELECT tag_id, COUNT(*) AS total
FROM user_pin_tags
WHERE pin_id =  34
GROUP BY tag_id
于 2012-12-10T19:49:24.140 に答える
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

于 2012-12-10T19:50:10.063 に答える
1

tag_id でグループ化できます。

SELECT tag_id, COUNT(pin_id)
FROM user_pin_tags
WHERE pin_id =  34
GROUP BY tag_id
于 2012-12-10T19:50:00.700 に答える