首页 > 解决方案 > SQL Server -- 按月分组

问题描述

我有一个 180k+ 行的 SQL Server 表,我正在尝试对其运行一些基本分析(我是 SQL 新手)。

基本上,我想按YYYY-MM它们的时间戳对行进行分组并计算它们。

这是我到目前为止所拥有的,但它不起作用。任何帮助将不胜感激。

SELECT 
    CONVERT(NVARCHAR(7), [dbname].[column name], 12) [Month], 
    SUM(Amount) [TotalAmount]
FROM
    [dbname]
GROUP BY 
    CONVERT(NVARCHAR(7), [dbname].[column name], 12);

标签: sqlsql-serverssms

解决方案


我会将月份和年份分成单独的列:

select year(col), month(col), sum(amount)
from [dbname] t
group by year(col), month(col)
order by year(col), month(col);

如果你真的想要 YYYY-MM:

select convert(varchar(7), col, 120) as yyyymm, sum(amount)
from [dbname] t
group by convert(varchar(7), col, 120)
order by yyyymm;

推荐阅读