일단 상품 카테고리 코드(앞 2자리) 를 구하는 방법부터 알고 싶다
참고
-> LPAD, RPAD 라는 명령어가 있었다.
LPAD(product_code, 2, '') as CATEGORY
라고 입력하니 앞 두글자가 따졌다.
GROUP BY를 걸어야 할것 같긴 한데 뭘로 걸어야 할까?
-> PRODUCT_CODE, PRODUCT_ID로 해봤다가 아무래도 저 2자리로 정리된 코드로 정렬해야 할거 같아서 해보았다. 이게 맞는거 같았다.
상품별 개수를 출력... 하고 싶은데 어디다 COUNT를 걸어야 하지?
-> PRODUCT_CODE는 아니었다. PRODUCT_ID에 거니 맞았다
select LPAD(product_code, 2, '') as CATEGORY, count(product_id) as PRODUCTS
from product
group by CATEGORY
order by product_code ASC
일단 ANIMAL_TYPE 컬럼을 COUNT 걸어야 하는 건 알겠는데 카테고리 별로 걸고 싶다
-> GROUP BY도 ANIMAL_TYPE으로 걸어주니 원하는 값이 나왔다.
예시에 ANIMAL_TYPE, count 컬럼이 나와있네
-> ANIMAL_TYPE, count(ANIMAL_TYPE)을 해주었다
고양이를 개보다 먼저 조회해달라고 하네?
-> ORDER BY ANIMAL_TYPE ASC를 걸어주었다
SELECT ANIMAL_TYPE, count(ANIMAL_TYPE) AS 'COUNT'
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE ASC
시간대별 - date_format(컬럼명, '원하는 형식') 을 쓰자
-> SELECT date_format(DATETIME, '%H') AS 'HOUR', COUNT(ANIMAL_ID) AS 'COUNT'
를 써주었다.
시간대 순으로 정렬
-> GROUP BY, ORDER BY에 모두 HOUR를 걸었다.
시간대가 주어졌으니 한정하자 - WHERE 절을 걸자
-> where date_format(DATETIME, '%h') between 9 AND 19
라고 썼는데 12시까지밖에 나오지 않았다.
-> SQL에서 24시간 표기법으로 나타내려면 %H
라고 써줬어야 했다.
-> WHERE 절에는 alias로 표기된 이름을 걸 수 없다 - HOUR를 걸었더니 나오지 않아 HOUR의 원본을 걸었다.
240807 TIL 에 내가 date_format을 썼던 기록이 있다.
SELECT date_format(DATETIME, '%H') AS 'HOUR', COUNT(ANIMAL_ID) AS 'COUNT'
from ANIMAL_OUTS
where date_format(DATETIME, '%H') between 9 AND 19
GROUP BY HOUR
ORDER BY HOUR ASC
컬럼 명을 지정해줬으니 그대로 바꿔주자
-> SELECT MCDP_CD AS '진료과코드', COUNT(date_format(APNT_YMD, '%Y-%m')) AS '5월예약건수'
를 써주었다.
날짜 형식을 맞추자 - 의외로 년도까진 지정해주지 않아도 되었네? (데이터가 모두 2022년 것)
-> COUNT(date_format(APNT_YMD, '%Y-%m')) AS '5월예약건수'
로 2022-00 로 나오게 설정했다.
2022년 5월 데이터만 잡도록 WHERE절을 걸어주자
-> WHERE date_format(APNT_YMD, '%Y-%m') = '2022-05'
-> 이것 WHERE date_format(APNT_YMD, '%m') = '05'
여도 상관없었다.
alias를 ORDER BY 같은 곳에 걸어도 먹히지 않았다? - 먹힌다!
-> 이렇게 나와서 안 된다고 생각했는데, 이건 내가 ORDER BY의 순서를 잘못 걸어줘서 그런 것이었다.
-> 이렇게 써도 된다!
저 alias는 참고 블로그를 보고 되나 싶어서 따라해봤다.
참고블로그에도 정답이 있는데, 나는 이것과 꽤 다르게 썼지만 어찌됐건 통과가 되었다.
SELECT MCDP_CD AS '진료과코드', COUNT(date_format(APNT_YMD, '%Y-%m')) AS '5월예약건수'
FROM APPOINTMENT
WHERE date_format(APNT_YMD, '%Y-%m') = '2022-05'
GROUP BY MCDP_CD
ORDER BY COUNT(date_format(APNT_YMD, '%Y-%m')), MCDP_CD ASC