簡體   English   中英

如何使用案例陳述使用計數

[英]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.

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