首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL查询:如何进行多次统计?(返回每个论坛的帖子数量和主题数量)

SQL查询:如何进行多次统计?(返回每个论坛的帖子数量和主题数量)
EN

Stack Overflow用户
提问于 2009-10-07 10:20:16
回答 2查看 353关注 0票数 2

我在获取数据库中每个论坛的帖子和主题的数量时遇到了一些问题。我可以通过两次查询得到这些值,但我想知道是否有可能只用一次查询。

此查询获取每个论坛的主题数量:

代码语言:javascript
复制
select forums.forumId, forums.forumName, count(*) as Topics FROM Topics 
INNER JOIN forums ON forums.forumId = topics.forumID 
GROUP BY forums.forumId;

此查询获取每个论坛的帖子数量:

代码语言:javascript
复制
select forums.forumId, forums.forumName, count(*) as Posts FROM posts 
INNER JOIN topics ON topics.topicID = posts.topicId 
INNER JOIN forums ON forums.forumId = topics.forumID 
GROUP BY forums.forumId;

如何在一个查询中同时获得帖子和主题计数?

EN

回答 2

Stack Overflow用户

发布于 2009-10-07 10:27:51

代码语言:javascript
复制
SELECT  forums.forumId, forums.forumName,
        COUNT(DISTINCT topics.TopicID) AS Topics,
        COUNT(*) as Posts
FROM    forums
INNER JOIN
        topics
ON      topics.forumID = forums.forumId
INNER JOIN
        posts 
ON      posts.topicId  = topics.topicID
GROUP BY
        forums.forumId
票数 3
EN

Stack Overflow用户

发布于 2010-07-09 07:27:24

代码语言:javascript
复制
SELECT  forums.forumId, forums.forumName,
        COUNT(DISTINCT topics.TopicID) AS Topics,
        COUNT(posts.topicId) as Posts
FROM    forums
LEFT OUTER JOIN topics
ON      topics.forumID = forums.forumId
LEFT OUTER JOIN posts 
ON      posts.topicId  = topics.topicID
GROUP BY
        forums.forumId

如果您想要计算没有主题或帖子的论坛,则需要使用左外部连接

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1530722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档