2017-06-05 81 views
2

我试图计算两个日期之间的差异,并尝试计算出现频率的相同查询。计算两个日期之间的差异并计算出现次数

SELECT DATEDIFF(day,[Date1],[Date2]) AS 'Mydate' 
    , count ([Mydate])  
    FROM Table1 
group 
    by 'Mydate' 

我期待查询来计算和计数,但得到一个错误消息“每个GROUP BY表达式必须至少包含一列不是外部引用。” 我所预料到的是,这样的事情:

Mydate Count 
0  5 
1  4 
2  5 

有人能帮助我吗?谢谢

回答

2

首先这看起来不像MySQL而是SQL Server。其次,你不能使用Count()函数中的别名。而是说count(*)

SELECT DATEDIFF(day,[Date1],[Date2]) AS 'Mydate', 
     Count (*)  
    FROM Table1 
GROUP BY DATEDIFF(day,[Date1],[Date2]) 
+0

它是SQL服务器。是的,我意识到这一点,但不知道这样做的最佳方式。 – Suzy

+0

谢谢Rahul,通过修改group by子句解决了这个问题。 – Suzy

1

无法通过别名组:

SELECT 'Mydate', Cnt 
FROM (SELECT DATEDIFF(day, [Date1], [Date2]) AS 'Mydate', 
       Count(*) Cnt 
     FROM Table1) T1 
GROUP BY 'Mydate' 
相关问题