簡體   English   中英

用例在SQL中添加不同的值

[英]Using case add different values in sql

有一個名為Product的表,其中包含三個列name,id and price 在下面的查詢中,我想執行以下操作:如果id 1,2和3存在,則添加id 1.id 2和id 3的價格;或者,如果僅id 1和2存在,則僅添加id 1和id 2的價格。

select
   name,
   id,

   case 
      when id in(1,2,3) then sum(price) as total
      else ' '
   end
   case
      when id in(4,5,6) then sum (price) as total
      else ' '
   end
from
   Product
group by
   name,
   id;

但是它不能正常工作。

樣本數據:

Name ID PRICE
A     1   30
B     2   10
C     5   20

預期產量:

NAME ID TOTAL 
A    1    40
B    2    40
C    5    20

假設您有一個唯一的ID,則可以嘗試Sum() Over()

Select Name, Id, 
    Sum(Price) Over (partition by (case when id in (1,2,3) then 1 else id end)) NewPrice
From Table1

結果和小提琴演示

| NAME | ID | NEWPRICE |
|------|----|----------|
|    A |  1 |       40 |
|    B |  2 |       40 |
|    C |  5 |       20 |

暫無
暫無

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

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