【问题标题】:sql - show count of field from another tablesql - 显示另一个表中的字段计数
【发布时间】:2015-07-12 04:28:13
【问题描述】:
我有一个里程碑表:
还有一个状态表:
我有一个问题:
SELECT T1.Status,T2.MilestoneTitle FROM [Organisation].[dbo].[Status] T1
JOIN [Organisation].[dbo].[Milestone] T2
ON T1.StatusId=T2.MilestoneStatusId WHERE T2.ProjectId=4
输出如下:
现在,我想将输出显示为:
如何为此编写查询?
【问题讨论】:
标签:
sql
sql-server
sql-server-2008
sql-server-2008-r2
【解决方案1】:
通过使用 Count 和 Group 我们可以做到这一点
SELECT
T1.Status, COUNT(T2.MilestoneTitle) AS MilestoneTitleCount
FROM
[Organisation].[dbo].[Status] T1
JOIN
[Organisation].[dbo].[Milestone] T2 ON T1.StatusId = T2.MilestoneStatusId
WHERE
T2.ProjectId = 4
GROUP BY
T1.Status
ORDER BY
T1.Status DESC
【解决方案2】:
SELECT Status, COUNT(MilestoneTitle) AS MilestoneTitleCount
FROM Organisation.dbo.Status INNER JOIN
Organisation.dbo.Milestone ON StatusId = MilestoneStatusId
WHERE (ProjectId = 4)
GROUP BY Status
COUNT() 函数返回符合指定条件的行数。
SELECT COUNT(column_name) FROM table_name;
GROUP BY 语句与 聚合函数 结合使用,将结果集按一列或多列分组。
SELECT column_name, Count(column_name)
FROM table_name
WHERE <Confidtion>
GROUP BY column_name;