【问题标题】: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;
      

      【讨论】:

        猜你喜欢
        • 2017-10-16
        • 2022-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-15
        • 1970-01-01
        相关资源
        最近更新 更多