Sql 将多个聚合函数输出为行而不是列
我对SQL和聚合函数比较陌生 我有这个查询,我只想要每个月的最大值Sql 将多个聚合函数输出为行而不是列,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我对SQL和聚合函数比较陌生 我有这个查询,我只想要每个月的最大值 SELECT max(case when LogDate < '2016-06-01' and LogDate >= '2016-05-01' THEN value end), max(case when LogDate < '2016-07-01' and LogDate >= '2016-06-01' THEN value end), max(case when LogDa
SELECT max(case when LogDate < '2016-06-01' and LogDate >= '2016-05-01' THEN value end),
max(case when LogDate < '2016-07-01' and LogDate >= '2016-06-01' THEN value end),
max(case when LogDate < '2016-08-01' and LogDate >= '2016-07-01' THEN value end)
FROM RawData
选择最大值(当LogDate<'2016-06-01'和LogDate>='2016-05-01'时,则为值结束),
最大值(当日志日期<'2016-07-01'和日志日期>='2016-06-01'时,则值结束),
最大值(当日志日期<'2016-08-01'和日志日期>='2016-07-01'时,则值结束)
从原始数据
它可以工作,但是每个月的输出都放在单独的列中,有没有办法让输出变成同一列中的行
我正在使用SQL server 2012这非常简单
“自然”输出以行为单位。您问题中的代码是在列之间旋转它
SELECT YEAR(LogDate) AS Year,
MONTH(LogDate) AS Month,
MAX(value) AS MaxValue
FROM RawData
WHERE LogDate >= '2016-05-01' AND LogDate < '2016-08-01'
GROUP BY YEAR(LogDate),
MONTH(LogDate)
选择年份(LogDate)作为年份,
月份(日志日期)作为月份,
最大(值)作为最大值
从原始数据
其中LogDate>='2016-05-01'和LogDate<'2016-08-01'
按年份分组(日志日期),
月份(日志日期)
这很简单
“自然”输出以行为单位。您问题中的代码是在列之间旋转它
SELECT YEAR(LogDate) AS Year,
MONTH(LogDate) AS Month,
MAX(value) AS MaxValue
FROM RawData
WHERE LogDate >= '2016-05-01' AND LogDate < '2016-08-01'
GROUP BY YEAR(LogDate),
MONTH(LogDate)
选择年份(LogDate)作为年份,
月份(日志日期)作为月份,
最大(值)作为最大值
从原始数据
其中LogDate>='2016-05-01'和LogDate<'2016-08-01'
按年份分组(日志日期),
月份(日志日期)
不知道月份和年份函数,谢谢!不知道月份和年份的功能,谢谢!