帮助编写SQL查询来计算

时间:2009-08-19 13:15:05

标签: sql join count

我有两张表如下:

tags: id, version, name

tag_links: id, version, tag_id (foreign key to tags.id)

我需要编写一个SQL语句,它返回tag_links表中每个tag_id出现的次数。

例如:

tags:
    id  version  name
    --  -------  ------
     1        1  sport
     2        1  comedy

tag_links:
    id  version  tag_id
    --  -------  ------
     1        1       1
     2        1       1
     3        1       1
     4        1       2
     5        1       2

我需要的结果是:

tag_id  times_occurred
------  --------------
     1               3
     2               2

我对SQL有一点了解,我试着写它但是:(

谢谢。

4 个答案:

答案 0 :(得分:8)

您甚至不需要为此表连接表,因为您想要的所有信息都在tag_links表中。

select tag_id, count(*) as times_occurred
from tag_links
group by tag_id;

如果您想要标记 names ,则需要加入表格,但这似乎并非如此。

答案 1 :(得分:3)

SELECT tag_id, COUNT(*) AS times_occurred
FROM tag_links
GROUP BY tag_id

答案 2 :(得分:0)

select id,count(*)  from tags inner join tag_links on tags.tag_id = tag_links.tag_id
group by id

答案 3 :(得分:0)

SELECT   tag_id, 
         Count(*) As times_occurred
FROM     tag_links
GROUP BY tag_id