簡體   English   中英

分組以在 SQL 語句中包含 case 語句

[英]Group by to include case statement inside SQL statement

我有一個表格,其中存儲了賣家的購買信息,表格包含對每次購買的 5 星評級。 我想輸出 Group By Sellers 和每個賣家的好(3 級以上)和壞(4 級以下)評級

PurchaseId  SellerId    PurchaseRating
1            ABC         2
2            ABC         5
3            DEF         1
4            XYZ         2
5            DEF         4
7            ABC         3

OUTPUT 
SellerId     TotalOrders   AvgRating    Above3*(4&5)  Below4*(1 to 3)
ABC           3             3.3        1              2
DEF           2             2.5        1              1
XYZ           1              2         0              1

對於前 3 列,我使用這個得到結果

Select SellerId, Count(P.Id) TotalOrders, Avg(PurchaseRating) AvgRating, 
CASE WHEN P.PurchaseRating >= 4 THEN 1 ELSE 0 END AS Above3*(4&5)
 from 
  [dbo].[AmazonAbeOrdersPurchaseInfo] P 
   Where PurchaseRating is not null
  Group by P.SellerId
  order by TotalOrders desc

無法確定如何在 group by 子句中包含大小寫。

您正在嘗試進行條件聚合。 重要的是你想要的聚合函數里面的條件表達式:

select 
    sellerId,
    count(*) totalOrders,
    avg(purchaseRating) avgRating,
    sum(case when purchaseRating > 3 then 1 else 0 end) above3,
    sum(case when purchaseRating < 4 then 1 else 0 end) below4
from [dbo].[AmazonAbeOrdersPurchaseInfo]
where purchaseRating is not null
group by sellerId
order by totalOrders desc

暫無
暫無

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

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