簡體   English   中英

如何將計數用於案例陳述

[英]How to use count for a case statement

我正在使用下面的代碼來獲取在 case 語句中具有 sum 的每個 case 語句的計數,但我收到了錯誤消息。

SELECT
  count(case when SUM(Orders.Sales)>10000 then 1 end) as High,
  count(case when SUM(Orders.Sales)>5000 and SUM(Orders.Sales)<9999 then 
  SUM(Orders.Sales) end) as Medium, 
  count(case when SUM(Orders.Sales)<5000 then SUM(Orders.Sales) end) as Low
FROM Orders
INNER JOIN Returns ON Orders.[Order ID] = Returns.[Order ID]

OUTPUT

在此處輸入圖像描述

這是我應該期望的必需的 output。

在此處輸入圖像描述

我覺得你應該對按順序聚合的子查詢進行外部計數匯總:

SELECT
    COUNT(CASE WHEN sales < 5000  THEN 1 END) AS Low,
    COUNT(CASE WHEN sales < 9999  THEN 1 END) AS Medium,
    COUNT(CASE WHEN sales >= 9999 THEN 1 END) AS High
FROM
(
    SELECT o.[Order ID], SUM(o.Sales) AS sales
    FROM Orders o
    INNER JOIN Returns r ON o.[Order ID] = r.[Order ID]
    GROUP BY o.[Order ID]
) t;

話雖如此,我實際上並不知道將Orders加入Returns表的目的是什么。 如果您只想從已退回的訂單中查找銷售額,那么這也許是有道理的。 否則,也許它沒有意義。

暫無
暫無

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

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