繁体   English   中英

按MONTH在T-SQL中对查询结果进行分组

[英]Grouping query results in T-SQL by MONTH

我正在寻找一个提示,该提示如何我的查询结果按MONTH和WindowsAccount 分组 ,其中月份信息来自查询中的InsertedAt列。 如果有人能提出实现该目标的方法,我将非常感激。 预先感谢您。

 SELECT InsertedAt,
       TaskName,
       WindowsAccount,
       Start,
       Round (Time / 60.1, 2) AS Time
FROM   (SELECT CONVERT (VARCHAR(23), InsertedAt, 104) AS InsertedAt,
               Subject,
               TaskName,
               WindowsAccount,
               CONVERT (VARCHAR(23), NewStart, 104)   AS Start,
               Datediff("MINUTE", OldStart, OldEnd)   AS OldDiff,
               Datediff("MINUTE", NewStart, NewEnd)   AS Time
        FROM   History
        WHERE  ( Month(InsertedAt) IN ( 9, 10, 11 )
                 AND Year(InsertedAt) = 2015 )) AS Tab
WHERE  Tab.OldDiff <> Tab.Time
ORDER  BY InsertedAt,
          WindowsAccount

您可以使用DatePart函数进行分组。

作为示例( https://msdn.microsoft.com/en-us/library/ms177673.aspx ):

SELECT DATEPART(m,OrderDate) AS N'Month'
    ,SUM(TotalDue) AS N'Total Order Amount'
FROM Sales.SalesOrderHeader
GROUP BY DATEPART(m,OrderDate)
ORDER BY DATEPART(m,OrderDate);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM