簡體   English   中英

SQL查詢可計算一日內購買4種以上產品的客戶總數

[英]SQL query to compute total number of customers who purchase >4 products on one day

我想編寫一個SQL查詢來計算哪些客戶在同一天購買了4種以上的產品。

這是我的桌子:

銷售( datecustomer_idproduct_idunits_sold

產品( idnameprice

客戶( idname

到目前為止,這是我所擁有的:

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 DISTINCTGROUP 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM