我正在尝试计算两个日期之间的差异,并在同一查询中尝试计算出现的频率。
SELECT DATEDIFF(day,[Date1],[Date2]) AS 'Mydate'
, count ([Mydate])
FROM Table1
group
by 'Mydate'
我希望查询能够计算和计算,但会收到错误消息"每个GROUP BY表达式必须包含至少一个不是外部引用的列。" 我期待的是,像这样:
Mydate Count
0 5
1 4
2 5
是的,有人能帮帮我吗?感谢
答案 0 :(得分:2)
首先,这看起来不像MySQL
而是SQL Server
。其次,你不能在Count()
函数中使用别名。而是说count(*)
SELECT DATEDIFF(day,[Date1],[Date2]) AS 'Mydate',
Count (*)
FROM Table1
GROUP BY DATEDIFF(day,[Date1],[Date2])
答案 1 :(得分:1)
您不能按别名分组:
SELECT 'Mydate', Cnt
FROM (SELECT DATEDIFF(day, [Date1], [Date2]) AS 'Mydate',
Count(*) Cnt
FROM Table1) T1
GROUP BY 'Mydate'