[英]group by of one column and having count of another
我有一個包含 4 列的表“客戶”
name day product price
A 2021-04-01 p1 100
B 2021-04-01 p1 100
C 2021-04-01 p2 120
A 2021-04-01 p2 120
A 2021-04-02 p1 100
B 2021-04-02 p3 80
C 2021-04-03 p2 120
D 2021-04-03 p2 120
C 2021-04-04 p1 100
用一個命令
SELECT COUNT(name)
FROM (SELECT name
FROM customer
WHERE day > '2021-03-28'
AND day < '2021-04-09'
GROUP BY name
HAVING COUNT(name) > 2)
我可以計算在一段時間內購買超過兩次的客戶數量。
我想知道每天(每天 GROUP BY)有多少顧客在這種情況下購買了一些東西,在一段時間內他們購買了兩次以上的東西。
建議編輯:
對於上述示例 A 和 C 是條件的有效代理。 所需的 output 將是:
day how_many
2021-04-01 2
2021-04-02 1
2021-04-03 1
2021-04-04 1
我將您的問題解釋為想知道每天有多少客戶進行了多次購買。 如果是這樣,一種方法使用兩個級別的聚合:
select day,
sum(case when day_count >= 2 then 1 else 0 end)
from (select c.name, c.day, count(*) as day_count
from customer c
group by c.name, c.day
) nc
group by day
order by day;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.