반응형
PL/SQL에서 매일 그룹화하는 방법은?
저는 PL/SQL로 각 일별 통계를 얻으려고 노력하고 있습니다.
하루에 몇 개의 입력, 오류의 버킷 :-) 요일별로 그룹화하고 싶습니다.
현재 수행 중인 작업:
SELECT TO_CHAR(dateTime, 'DD') DAY, TO_CHAR(dateTime, 'MM') MONTH, errormessage
FROM log
WHERE (...)
GROUP BY MONTH, DAY, errormessage
그러면 ORA-00904: "DAY": 잘못된 식별자가 나타납니다(그룹에서 다음 시간까지).
도움이 필요하신가요? :D
SELECT TO_CHAR(dateTime, 'DD') DAY, TO_CHAR(dateTime, 'MM') MONTH, errormessage
FROM log
WHERE (...)
GROUP BY TO_CHAR(dateTime, 'DD'), TO_CHAR(dateTime, 'MM'), errormessage
열 별칭은 다음에 적합하지 않습니다.GROUP BY
, 당신은 완전한 표현이 필요합니다.
당신의 문제는 스코프 문제입니다.GROUP BY
조항은 문장의 표 표현의 일부이므로 따라서 다음에 앞서 평가됩니다.SELECT
절, 즉 투영.즉, 그룹화 시에 예상된 별칭을 사용할 수 없습니다.이것이 하나의 해결책입니다.
SELECT DAY, MONTH, errormessage
FROM (
SELECT TO_CHAR(dateTime, 'DD') DAY, TO_CHAR(dateTime, 'MM') MONTH, errormessage
FROM log
WHERE (...)
)
GROUP BY MONTH, DAY, errormessage
이것은 또 다른 것입니다.
SELECT TO_CHAR(dateTime, 'DD') DAY, TO_CHAR(dateTime, 'MM') MONTH, errormessage
FROM log
WHERE (...)
GROUP BY TO_CHAR(dateTime, 'MM'), TO_CHAR(dateTime, 'DD'), errormessage
비표준적 행위
일부 데이터베이스(MySQL, Postgre 포함)를 참고합니다.SQL 등)에서 의 프로젝션에서 열 별칭을 참조할 수 있습니다.GROUP BY
절더 엄격한 SQL 방언(예: Oracle)에서는 불가능합니다.
SELECT TO_CHAR(dateTime, 'DD') DAY, TO_CHAR(dateTime, 'MM') MONTH, errormessage
FROM log
WHERE (...)
GROUP by TO_CHAR(dateTime, 'DD'), TO_CHAR(dateTime, 'MM'), errormessage
그룹에서 별칭을 사용할 수 없습니다.
언급URL : https://stackoverflow.com/questions/10123202/how-to-group-by-each-day-in-pl-sql
반응형
'sourcetip' 카테고리의 다른 글
차(1)와 작은 인트(1) 중 어느 것이 더 빠릅니까? 왜죠? (0) | 2023.09.20 |
---|---|
AngularJS에서 분리된 범위가 없는 지시 범위 속성 (0) | 2023.09.20 |
how to setup openshift wordpress setup on localhost (0) | 2023.09.15 |
python 데이터베이스 요청이 업데이트되지 않음 (0) | 2023.09.15 |
SQLException 오류를 테이블에 기록 (0) | 2023.09.15 |