일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- python
- cte
- counter
- Growth hacking
- Queue
- Stack
- 코딩
- programmers
- sql
- 완전탐색
- coding test
- AARRR
- itertools
- 파이썬
- 조합
- 프로그래머스
- collections
- tableau
- time complexity
- level4
- 코테
- import re
- Level2
- lambda
- 코딩테스트
- LeetCode
- lv4
- join
- coding
- mysql
Archives
- Today
- Total
ror_coding
[Programmers] 즐겨찾기가 가장 많은 식당 정보 출력하기 - 131123 본문
728x90
SELECT DISTINCT( ) 를 해도 같은 단어가 두 개 나와서 답이 틀렸다.
왜 그런지 이유를 찾아보니 distinct는 뒤에 따라 붙는 모든 컬럼들의 중복되는 '조합' 중 하나만 출력한다.
Question
REST_INFO 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요. 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요.
Point
- WHERE 절 서브쿼리
- SELECT DISTINCT( FOOD_TYPE ) 을 해도 '한식'이 두 개 나옴 -> 따라서 GROUP BY FOOD_TYPE으로 하나만 출력.
Code (After 25.06.)
SELECT FOOD_TYPE
, REST_ID
, REST_NAME
, FAVORITES
FROM (SELECT *, ROW_NUMBER() OVER(PARTITION BY FOOD_TYPE ORDER BY FAVORITES DESC) AS RN
FROM REST_INFO) A
WHERE RN = 1
ORDER BY 1 DESC
Code (Before)
SELECT FOOD_TYPE, REST_ID, REST_NAME, FAVORITES
FROM REST_INFO
WHERE FAVORITES IN (SELECT MAX(FAVORITES)
FROM REST_INFO
GROUP BY FOOD_TYPE)
GROUP BY FOOD_TYPE
ORDER BY FOOD_TYPE DESC

now me
On my github
728x90
'Coding Test > SQL' 카테고리의 다른 글
[Programmers] 조건에 맞는 사용자 정보 조회하기 - 164670 (2) | 2024.10.02 |
---|---|
[Programmers] 없어진 기록 찾기 - 59042 (4) | 2024.10.02 |
[Programmers] 부모의 형질을 모두 가지는 대장균 찾기 - 301647 (0) | 2024.10.01 |
[Programmers] 조건에 맞는 개발자 찾기 - 276034 (1) | 2024.10.01 |
[Programmers] 연도별 대장균 크기의 편차 구하기 - 299310 (0) | 2024.09.30 |