반응형
Oracle에서 사례 문장을 기반으로 Group By를 사용하는 방법은 무엇입니까?
Oracle을 사용하는 SQL 쿼리가 있습니다.CASE
날짜 열이 현재 날짜보다 작거나 큰지 비교합니다.하지만 어떻게 사용합니까?CASE
- a에 있는 진술GROUP BY
- 진술?저는 각각의 경우의 기록을 세고 싶습니다.
예.
select
(case
when exp_date > sysdate then 1
when exp_date <= sysdate then 2
else 3
end) expired, count(*)
from mytable
group by expired
하지만 시도할 때 오류가 발생합니다.ORA-00904
.좋은 의견이라도 있나?
select
(case
when exp_date > sysdate then 1
when exp_date <= sysdate then 2
else 3
end) expired, count(*)
from mytable
group by (case
when exp_date > sysdate then 1
when exp_date <= sysdate then 2
else 3
end)
인라인 뷰 사용:
SELECT expired,
count(*)
FROM (SELECT (CASE
WHEN exp_date > SYSDATE THEN 1
WHEN exp_date <= SYSDATE THEN 2
ELSE 3
END) AS expired
FROM mytable)
GROUP BY expired;
도움이 되길...
추가 입력으로, 이 스레드와 관련이 없지만 절별로 그룹에 언급하지 않고 사례 진술을 집계할 수도 있습니다.
SELECT
WORK_ORDER_NUMBER,
SUM(CASE WHEN STOCK_CODE LIKE 'xxxx' THEN STOCK_QUANTITY ELSE 0 END) AS TOTAL
FROM Table
GROUP BY WORK_ORDER_NUMBER;
언급URL : https://stackoverflow.com/questions/11325268/how-do-i-use-group-by-based-on-a-case-statement-in-oracle
반응형
'programing' 카테고리의 다른 글
오라클에서 테이블에 대한 외부 키가 있는 테이블을 찾는 방법은 무엇입니까? (0) | 2023.06.26 |
---|---|
dplyr 요약:출력에서 길이가 0인 그룹을 유지하려면 ".drop=FALSE"와 같습니다. (0) | 2023.06.26 |
For 루프를 되돌리는 방법 (0) | 2023.06.21 |
Woocommerce의 각 3개 품목을 균일 요금으로 배송하는 데 추가 비용을 추가합니다. (0) | 2023.06.21 |
SqlDateTime입니다.최소값!= 날짜 시간.MinValue, 왜? (0) | 2023.06.21 |