2024. 10. 17. 18:28ㆍ부트캠프 TIL
1. 프로그래머스 사용
1-1) sql 문제 : 즐겨찾기가 가장 많은 식당 정보 출력하기
ㄴ 문제 : 식당 정보 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요. 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요.
ㄴ 설명_1 : 조회할 컬럼 체크 - 음식종루, 식당ID, 식당이름, 즐겨찾기수
ㄴ 설명_2 : 음식종류별로 - GROUP BY 사용
ㄴ 설명_3 : 즐겨찾기수가 가장 많은 - ORDER BY DESC 활용
ㄴ 설명_4 : 음식종류 내림차순 정렬 - ORDER BY DESC
ㄴ 실제 쿼리 :
SELECT
FOOD_TYPE,
REST_ID,
REST_NAME,
FAVORITES
FROM
(
SELECT FOOD_TYPE, REST_ID, REST_NAME, FAVORITES FROM REST_INFO
ORDER BY FAVORITES DESC
LIMIT 18446744073709551615
) a
GROUP BY FOOD_TYPE
ORDER BY FOOD_TYPE DESC
ㄴ 이번에 핵심 포인트는 ORDER BY로 즐겨찾기수가 가장 많은 데이터를 먼저 찾고, GROUP BY로 음식종류 기준으로 그룹화 해야하는 것이다.
ㄴ 그냥 GROUP BY, ORDER BY를 진행하면 그룹화가 먼저 진행이되어 즐겨찾기 수 가장많은 데이터기준을 찾을수가 없다.
ㄴ 예전에 회사에서 일할때 똑같은 케이스가 있어서 사용했던 방법인데 limit(2^64 - 1)의 값을 넣어주면 ORDER BY로 먼저 정렬한 후 GROUP BY로 그룹화가 가능하다.
https://mingggu.tistory.com/115
ㄴ 해당 블로그에서 활용했다. 똑같은 글을 3개나 발견했는데 가장 최초로 작성된 글을 가져왔다.
'부트캠프 TIL' 카테고리의 다른 글
[59] 부트캠프 TIL - 본캠프 41일차 (6) | 2024.10.21 |
---|---|
[58] 부트캠프 TIL - 본캠프 40일차 (0) | 2024.10.18 |
[56] 부트캠프 TIL - 본캠프 38일차 (4) | 2024.10.16 |
[55] 부트캠프 TIL - 본캠프 37일차 (1) | 2024.10.15 |
[54] 부트캠프 TIL - 본캠프 36일차 (0) | 2024.10.14 |