簡體   English   中英

Oracle SQL:選擇多個不同字段的計數

[英]Oracle SQL: select count of multiple distinct fields

我需要select idtype和具有唯一id-type組合的行數。

所以我嘗試了這樣的事情:

SELECT ID,
       CASE
         WHEN /**/ THEN 'FIRST'
         WHEN /**/ THEN 'ANOTHER'
         ELSE 'ELSE'
         END AS TYPE,
       COUNT(DISTINCT ID, TYPE)

FROM   PRODUCTS

GROUP BY ID, TYPE;

同樣的問題是在處理查詢時計算類型,所以當我嘗試做類似的事情時:

SELECT ID,
       /*SOMETHING*/ END AS TYPE,
       COUNT(*)

FROM (SELECT DISTINCT ID,TYPE FROM PRODUCTS GROUP BY ID,TYPE);

我懂了:

 ORA-00904: "TYPE": invalid identifier

有什么建議么?

您可以使用子查詢:

SELECT DISTINCT ID,
       (CASE WHEN /**/ THEN 'FIRST'
             WHEN /**/ THEN 'ANOTHER'
             ELSE 'ELSE'
        END) AS TYPE
FROM  PRODUCTS;

然后您可以將其轉換為子查詢::

SELECT ID, TYPE, COUNT(*)
FROM ( <QUERY HERE> ) T
GROUP BY ID, TYPE;

您在尋找這個嗎?

SELECT ID,
       (CASE WHEN /**/ THEN 'FIRST'
             WHEN /**/ THEN 'ANOTHER'
             ELSE 'ELSE'
        END) AS TYPE,
       COUNT(*)
FROM PRODUCTS
GROUP BY ID, 
         (CASE WHEN /**/ THEN 'FIRST'
               WHEN /**/ THEN 'ANOTHER'
               ELSE 'ELSE'
        END);

暫無
暫無

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

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