728x90
반응형
코딩테스트 연습 > GROUP BY > 진료과별 총 예약 횟수 출력하기
난이도: Lv.2
언어: MySQL
https://school.programmers.co.kr/learn/courses/30/lessons/132202
실패
SELECT a.MCDP_CD AS '진료과코드', COUNT(a.APNT_YMD) AS '5월예약건수'
FROM APPOINTMENT a
WHERE 1=1
AND DATE_FORMAT(a.APNT_YMD, '%Y-%m') = '2022-05'
GROUP BY a.MCDP_CD
ORDER BY '5월예약건수' ASC, a.MCDP_CD ASC
실패이유
1. ORDER BY 컬럼명에 ''를 붙힘
ORDER BY에서 ''(따옴표)를 붙히게 되면 문자 그자체로 해석이 되기 때문에 안된다!
성공
성공1.
SELECT a.MCDP_CD AS 진료과코드, COUNT(a.APNT_YMD) AS 5월예약건수
FROM APPOINTMENT a
WHERE 1=1
AND DATE_FORMAT(a.APNT_YMD, '%Y-%m') = '2022-05'
GROUP BY a.MCDP_CD
ORDER BY 5월예약건수 ASC, a.MCDP_CD ASC
성공2.
SELECT a.MCDP_CD AS '진료과코드', COUNT(a.APNT_YMD) AS '5월예약건수'
FROM APPOINTMENT a
WHERE 1=1
AND DATE_FORMAT(a.APNT_YMD, '%Y-%m') = '2022-05'
GROUP BY a.MCDP_CD
ORDER BY 5월예약건수 ASC, a.MCDP_CD ASC
성공3. *채택
SELECT a.MCDP_CD AS '진료과코드', COUNT(a.APNT_YMD) AS '5월예약건수'
FROM APPOINTMENT a
WHERE 1=1
AND DATE_FORMAT(a.APNT_YMD, '%Y-%m') = '2022-05'
GROUP BY a.MCDP_CD
ORDER BY `5월예약건수` ASC, a.MCDP_CD ASC
성공 1, 2도 정답으로 체크가 되지만 성공 3을 채택한 이유는 공식문서에서 ``(백틱)을 이용하라고 적혀있기 때문이다.
나머지도 통과가 가능하긴 하다.
https://dev.mysql.com/doc/refman/8.0/en/problems-with-alias.html
*참고 chatGPT
따옴표를 사용하는 것은 열 이름이나 문자열 리터럴을 나타낼 때입니다. 그러나 정렬 순서를 지정하는 열에는 따옴표를 사용하지 않아야 합니다.
코드에 질문이 있으시면 댓글을 달아주세요. 최대한 빠른 시일 내에 답변해드리겠습니다.
봐주셔서 감사합니다.
728x90
반응형
'Study > SQL' 카테고리의 다른 글
[프로그래머스 SQL] 가격대 별 상품 개수 구하기 (0) | 2024.01.12 |
---|---|
[프로그래머스 SQL] 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2024.01.12 |
[프로그래머스 SQL] 성분으로 구분한 아이스크림 총 주문량 (0) | 2024.01.12 |
[프로그래머스 SQL] 조건에 맞는 도서와 저자 리스트 출력하기 (0) | 2024.01.12 |
[프로그래머스 SQL] 가장 비싼 상품 구하기 (0) | 2024.01.11 |