2017-04-19 276 views
0
WEEK | CID | CUSTOMER_ID | L1 
2017-04 | 12 | 1   | ABC 
2017-04 | 13 | 1   | ABC 
2017-04 | 13 | 1   | ABC 
2017-04 | 16 | 1   | DFG 
2017-04 | 15 | 2   | DFG 
2017-14 | 14 | 1   | DFG 

我已經通過組合多個數據庫(上面創建的表的示例)創建了一個表。我想每個customer_id每週進來的次數(例如2017-04customer_id 1進來3次,我們想要考慮第2行& 3(因此1計數),然後第1行和第4行。這3次按多列分組的聚合函數

因此,輸出應該是:

WEEK | CUSTOMER_ID | COUNT(CUSTOMER_ID) 
2017-04 | 1   | 3 
2017-04 | 2   | 1 
2017-14 | 1   | 1 

我想在以下的說法:

select 
    week, customer_id, count(customer_id) 
from 
    table 
group by 
    week, cid, customer_id, L1; 

但是,我想確認做這樣會指望行2 & 3作爲一個數還是兩個數?

回答

2

我想你想要count(distinct)

select week, customer_id, count(distinct cid) 
from table 
group by week, customer_id; 
+0

我覺得計數(不同的CID)是我想要的,但只是好奇,如果我按周做組,CUSTOMER_ID,L1,而不是按周, customer_id,會有什麼不同嗎? – Arman

+0

@阿曼。 。 。根據您的樣本數據,它會有所作爲。 –

0
SELECT WEEK, 
     CUSTOMER_ID, 
     COUNT(DISTINCT CID) 
    FROM TABLE 
GROUP BY WEEK,CUSTOMER_ID;