[문제1]
SELECT 지역, SUM(금액) AS 금액
FROM 지역매출
GROUP BY 지역
ORDER BY 년 DESC;
GROUP BY가 사용 된 컬럼, 혹은 집계함수가 아니면 에러가 발생한다. 그러나
SELECT 지역, 금액
FROM 지역매출
ORDER BY 년;
GROUP BY를 사용하지 않는 경우에는 FROM에서 참조하는 테이블에 존재 하는 행이면 에러가 발생하지 않는다.
[개념2]
다음중 오류가 발생하는 SQL은?
1) GROUP BY에 사용된 컬럼과 집계함수만 SELECT에서 사용 가능하다.
2) HAVING 조건절에는 어떤 함수도 괜찮다.
3) GROUP BY 없이 HAVING 집계함수도 가능하다.
4) AVG(COUNG(*)) 처럼 중첩된 GROUP 함수는 최종적으로 1건이 될 수 밖에 없다.
이때 다른 컬럼에서 집계함수의 값이 여러 개가 출력될 때, 중첩되는 경우, 1건만 출력될 수가 없어서 에러가 발생한다.
[개념1]
ORDER BY (CASE WHEN ID = 999 THEN 1 ELSE ID END)
이 경우 만약 ID가 999라면 숫자 1로 해석을 하고 아니면 ID의 INT값을 기준으로 정렬한다는 의미이다.
'주저리주저리' 카테고리의 다른 글
갤럭시 카메라 셔터음 끄기 (adb) (2) | 2025.04.10 |
---|---|
보안/테크 관련 소식 사이트 (0) | 2024.11.21 |
유닉스 (파일 아카이브)와 (파일 압축) (0) | 2024.11.17 |
SQLD 정리 (4) | 2024.11.15 |
파이어폭스.. 심상치 않다 (0) | 2024.10.17 |