簡體   English   中英

選擇不同行的計數和總和

[英]Select Count of Distinct rows and sum

我有一個看起來像這樣的表:

Item     |     Document
-----------------------
Book     |      BL
Book     |      CT
Book     |      OP
Pen      |      CT
Pen      |      BL
Mug      |      OP

我需要獲取所有唯一項的計數以及該表中所有文檔的計數。 對於上面的示例,我正在尋找這樣的輸出:

3        |     6

3 - Book, Pen, Mug
6 - total count of available documents

我的SQL看起來像這樣:

 SELECT ITEM , COUNT (*) AS DOC_COUNT
    FROM TABL1
  GROUP BY ITEM
  HAVING COUNT (*) > 0

但是我只得到所有項目的清單以及它們的文檔數。 有人可以幫我找出解決方法嗎? 謝謝!

小學,親愛的沃森。

select count ( distinct item ) as item_count
     , count ( document )      as doc_count
from   tabl1
;

請試試

SELECT * FROM table1;
SELECT item ,
  MAX(ITEMS_)ITEM,
  MAX(DOC_)DOC,
  MAX(ro_num)TOTAL_ITEM
FROM
  (SELECT item,
    row_number() over (partition BY ITEM order by ITEM DESC)ITEMS_,
    row_number() over (partition BY document order by document DESC ) DOC_,
    MAX(rownum) over (partition BY 1)ro_num
  FROM table1
  )
GROUP BY item

如果您的預期輸出是

3        |     6

3 - Book, Pen, Mug
6 - total count of available documents

請嘗試以下查詢

SELECT TO_CHAR (COUNT (DISTINCT item)) AS item_count, 
       TO_CHAR (COUNT (document)) AS doc_count 
  FROM (SELECT item, document FROM table1) 
UNION ALL 
SELECT    COUNT (item) 
       || ' - ' 
       || LISTAGG (item, ',') WITHIN GROUP (ORDER BY item) 
          items, 
       NULL 
  FROM (SELECT DISTINCT item 
          FROM ( (SELECT item, document FROM table1))) 
UNION ALL 
SELECT COUNT (document) || ' - total count of available documents' document, 
       NULL 
  FROM (SELECT document 
          FROM ( (SELECT item, document FROM table1))) 

您也可以使用ROLLUP

  SELECT item, COUNT (item)
    FROM table1
GROUP BY ROLLUP (item)
ORDER BY item

暫無
暫無

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

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