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