簡體   English   中英

獲取 SQL 服務器中每個重復行的日期

[英]Get the date for each duplicated row in SQL Server

我進行了一次查詢,以獲取多次銷售的產品數量,並且有效。

現在我想顯示每個重復銷售的交易日期,但是當我在 select 上插入日期時,它給我帶來的行數要少得多:出了點問題。 沒有日期的查詢返回 9855 行,而日期只有 36 行。

這是我正在做的查詢:

SELECT TransactionDate, 
       ProductName, 
       QtyOfSales = COUNT(*) 
FROM product_sales
WHERE ProductID = 1 -- Product Sold ID
  AND ProductName IS NOT NULL 
GROUP BY ProductName, 
         TransactionDate
HAVING COUNT(*) > 1 

也許是子查詢? 你能在這方面提供幫助嗎?

您可以使用對應的COUNT window function,根據需要在“ ProductName ”上分區找到交易數量:

WITH cte AS(
       SELECT TransactionDate,
              ProductName, 
              COUNT(*) OVER(PARTITION BY ProductName) AS QtyOfSales 
       FROM product_sales
       WHERE ProductID = 1 -- Product Sold ID
         AND ProductName IS NOT NULL 
)
SELECT DISTINCT TransactionDate,
                ProductName 
FROM cte 
WHERE QtyOfSales > 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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