2013-08-05 34 views
2

我有这个表SQL - 计数ID用户与不同creationDate

ID/creationDate 
2/2012-06-28 04:58:27 
2/2012-07-10 14:26:51 
2/2013-04-18 00:35:36 
3/2012-07-02 16:47:00 
4/2012-07-02 20:24:22 
5/2012-07-03 00:32:17 
6/2012-07-05 04:40:02 
6/2012-07-06 18:17:08 
6/2013-04-28 22:28:54 

我想算ID至极的数量有2个或多个不同creationDate。在我的例子中,我想有2个(ID 2和6有不同的creationDate)。

我试图

SELECT COUNT(ID) FROM table 
GROUP BY ID 
HAVING count(DISTINCT creationDate)>1 
+1

你从查询中得到了什么输出? – Stobor

+0

如果按照创建日期和更改计数(ID)进行分组,会发生什么情况? – Nilesh

+0

你不应该让问题保持开放。有没有回复你的问题?如果是这样,请将其标记为已解决。 –

回答

1
SELECT COUNT(*) 
FROM (SELECT ID,COUNT(DISTINCT creationDate)'CT' 
     FROM Table 
     GROUP BY ID 
     HAVING COUNT(DISTINCT creationDate) > 1 
    )sub 

如果使用的是支持SUM() OVER()你可以使用RDBMS:

SELECT TOP 1 SUM(COUNT(DISTINCT ID))OVER() 
FROM Table1 
GROUP BY ID 
HAVING COUNT(DISTINCT creationDate) > 1 

演示:SQL Fiddle

1

试试这个:

SELECT COUNT(ID) 
FROM (
    SELECT COUNT(ID) AS IDCnt, ID 
    FROM table 
    GROUP BY ID 
    HAVING count(ID)>1 
    ) a