2015-06-19 32 views
2

我有一張表,其中包含我們客戶的使用情況數據 - customerID,DateofUsage。因此,任何一天,同一個customerID可能會出現多次。SQL查詢以獲取活動客戶的列表。活躍是每週至少一次在表中的人

我想找出活躍客戶的列表。活躍的是那些每週至少使用一次產品的人。

當我使用這個:

SELECT distinct [CustomerId], datepart(week, [Date]) FROM CustomerUsage 
    group by [subscriptionid] 

我得到CustomerIDs的名單,他們在使用這一週,我嘗試這樣做是爲了擴展這個:

SELECT distinct [CustomerId], COUNT(datepart(week, [Date])) FROM CustomerUsage 
    group by [subscriptionid] 

但現在的數字因爲計數全部搞砸了。我希望得到客戶活躍的週數,如果這個數字大於目前的週數,我有我的名單。任何想法我做錯了什麼?

+1

你標記過這個 'mysql的',因爲? – Strawberry

+0

將標記更改爲sql。 – Anurag

+0

你在使用什麼數據庫? –

回答

2

您需要的日期部分之前添加一個獨特的,以確保您只計算了不同天,客戶是存在於記錄。您發佈的查詢記錄了客戶所在的每一行。

SELECT distinct [CustomerId] 
    , COUNT(Distinct datepart(week, [Date])) 
FROM CustomerUsage 
group by [subscriptionid]