![](/img/trans.png)
[英]SQL Query count how many products bought on one day by those who bought more than 3 products on a different day
[英]SQL query to compute total number of customers who purchase >4 products on one day
我想編寫一個SQL查詢來計算哪些客戶在同一天購買了4種以上的產品。
這是我的桌子:
銷售( date
, customer_id
, product_id
, units_sold
)
產品( id
, name
, price
)
客戶( id
, name
)
到目前為止,這是我所擁有的:
SELECT COUNT(s.product_id) as total_customers
FROM Sales s1
WHERE DATEDIFF(s1.date, s2.date)=0
INNER JOIN Sales s2
ON s1.product_id = s2.product_id
HAVING COUNT(s.product_id) > 4;
您的查詢中有太多錯誤,請嘗試以下操作
SELECT customer_id,cast(s1.date as date),COUNT(s1.product_id) as total_customers
FROM Sales s1
Group by customer_id,cast(s1.date as date)
HAVING COUNT(s1.product_id) > 4;
如果要在同一日期購買超過4種產品的客戶:
SELECT DISTINCT s.customer_id
FROM Sales s
GROUP BY s.customer_id, date(s.date)
HAVING COUNT(*) > 4;
這是SELECT DISTINCT
與GROUP BY
使用的少數情況之一。 如果您還想知道日期,請在SELECT
包括date(s.date)
。
請注意,這假設任何給定產品在每個日期僅由客戶購買一次。 如果客戶在一個日期可以有一個產品的多個記錄,請使用COUNT(DISTINCT product_id)
而不是COUNT(*)
。
要獲取客戶總數,請使用子查詢:
SELECT COUNT(*)
FROM (SELECT DISTINCT s.customer_id
FROM Sales s
GROUP BY s.customer_id, date(s.date)
HAVING COUNT(*) > 4
) c
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.