[英]How to use count using case statements
我正在嘗試獲取項目總數,並使用case語句對它們進行分類。 但是,我一直在重復重復這些項(現在歸為“ inv”)(例如,“衣服”重復了4次,每次計數為1,而不是總數為4的一次)-如何獲得擺脫那個? 我在下面列出了期望的結果。
這是我的桌子:
表框1
ITEM_NO ITEM DATE
===================================
3130C MARVEL_SHIRT 01-JAN-17
1845C SPONGEBOB_BOXERS 03-DEC-18
A900C CK_COAT 04-DEC-18
A988C RIDER_JEANS 11-JAN-19
L350T BARBIE 23-NOV-18
L129T LEGO 09-OCT-18
LXZYT BATMAN_FIG1 12-JAN-19
我的代碼:
select (case substr (item_no,5,1)
when 'C' then 'clothes'
when 'T' then 'toys' else 'misc' end) inv,
count(item_no) total
from box1 where date <= sysdate
group by item
期望的結果:
INV TOTAL
===============
CLOTHES 4
TOYS 3
您需要按類別分組。
SELECT CASE substr(item_no, 5, 1)
WHEN 'C' THEN
'clothes'
WHEN 'T' THEN
'toys'
ELSE
'misc'
END inv,
count(item_no) total
FROM box1
WHERE date <= sysdate
GROUP BY CASE substr(item_no, 5, 1)
WHEN 'C' THEN
'clothes'
WHEN 'T' THEN
'toys'
ELSE
'misc'
END;
由於表達式的性質,您只需要在substr()
上進行聚合:
select (case substr(item_no, 5, 1)
when 'C' then 'clothes'
when 'T' then 'toys'
else 'misc'
end) inv,
count(item_no) total
from box1
where date <= sysdate
group by substr(item_no, 5, 1);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.