2017-07-14 49 views
0

我有類似這樣數的不同以消除重複值

AA 20170101 
BB 20170101 
CC 20170101 
AA 20170102 
CC 20170102 
DD 20170102 
BB 20170103 
EE 20170103` 

一個表,我需要得到不同值的計數每一天。棘手的部分是你不能計算不同的日子相同的價值。例如:AA在所有的日子裏只應計一次。最終結果應該與此類似。

3 20170101--> (this is AA, BB, CC) 
1 20170102--> (this is DD) 
1 20170103--> (this is EE)` 

當我在下面嘗試時,它給了我不正確的結果,因爲相同的值每天計數超過一次。

select count(distinct(name)),date 
from testcount 
group by date 

也是這個最終的查詢應該是一套基於question.no循環等。

+0

爲什麼計數不止一次?它是日期還是日期時間列? –

+0

AA,BB,CC只有兩個值在不同的日期出現 – mohan111

+0

這就像*每天新客戶的數量*?你是什​​麼DBMS? – dnoeth

回答

3

您需要嵌套的集合體:

select first_date, count(*) 
from 
(
    select name, 
     min(date) as first_date -- find the first date for each name, only count once 
    from testcount 
    group by name 
) as d 
group by first_date 
2

你需要做兩個集料,首先是要獲得每個名字的第一次約會,那麼你就可以算日期的名字:

SELECT Date, COUNT(Name) AS Names 
FROM ( SELECT Name, MIN(Date) AS Date 
      FROM T 
      GROUP BY Name 
     ) AS t 
GROUP BY Date;