프로그래머스 | SQL 스터디 11 (비트연산자 &)

2024. 9. 11. 23:40·SQL/프로그래머스

SELECT

서울에 위치한 식당 목록 출력하기(Lv4)

문제 설명

​

문제

REST_INFO와 REST_REVIEW 테이블에서 서울에 위치한 식당들의 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회하는 SQL문을 작성해주세요. 이때 리뷰 평균점수는 소수점 세 번째 자리에서 반올림 해주시고 결과는 평균점수를 기준으로 내림차순 정렬해주시고, 평균점수가 같다면 즐겨찾기수를 기준으로 내림차순 정렬해주세요.

​

풀이

SELECT로 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회

 

JOIN에서 공통 컬럼인 REST_ID로 연결​

 

WHERE문에서 '서울'이 들어간 지역으로 제한

* 서울특별시로 해서 틀렸는데, 서울특별시라고 표기하지 않은 식당들이 존재해서 '서울'로 하는 것이 정확!

​

GROUP BY에서 모든 선택된 컬럼 그룹화

* GROUP BY 절을 사용할 때, SELECT 절에 포함된 모든 컬럼들은 반드시 GROUP BY 절에도 포함되어야함

 

ORDER BY에서 평균점수와 즐겨찾기를 내림차순 정렬

SELECT 
    I.REST_ID, 
    I.REST_NAME, 
    I.FOOD_TYPE, 
    I.FAVORITES, 
    I.ADDRESS, 
    ROUND(AVG(R.REVIEW_SCORE), 2) AS SCORE -- 소수점 두 번째 자리에서 반올림
FROM REST_INFO I
JOIN REST_REVIEW R ON R.REST_ID = I.REST_ID
WHERE I.ADDRESS LIKE '서울%'
GROUP BY I.REST_ID, I.REST_NAME, I.FOOD_TYPE, I.FAVORITES, I.ADDRESS -- 모든 선택된 컬럼 그룹화
ORDER BY SCORE DESC, I.FAVORITES DESC;

GROUP BY

입양 시각 구하기(2) (Lv4)

문제 설명

​

문제

보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.

​

풀이

WITH에서 재귀적 cte를 이용하여 시간들을 표현하는 cte 생성(0~23)

 

SELECT에서 시간, 동물의 수를 조회

​

JOIN으로 cte에 있는 시간을 연결

​

GROUP BY에서 시간으로 그룹화

​

ORDER BY에서 시간을 오름차순 정렬

WITH RECURSIVE Hours AS (
    SELECT 0 AS HOUR
    UNION ALL
    SELECT HOUR + 1
    FROM Hours
    WHERE HOUR < 23
)

SELECT 
    H.HOUR,
    COUNT(A.ANIMAL_ID) AS COUNT
FROM Hours H
LEFT JOIN ANIMAL_OUTS A ON H.HOUR = HOUR(A.DATETIME)
GROUP BY H.HOUR
ORDER BY H.HOUR;

 JOIN

FrontEnd 개발자 찾기(Lv4)

문제 설명

​

문제

DEVELOPERS 테이블에서 Front End 스킬을 가진 개발자의 정보를 조회하려 합니다. 조건에 맞는 개발자의 ID, 이메일, 이름, 성을 조회하는 SQL 문을 작성해 주세요. 결과는 ID를 기준으로 오름차순 정렬해 주세요.
 

풀이

SELECT에서 개발자의 ID, 이메일, 이름, 성을 조회

​

WHERE에서 비트 연산자를 사용하여 Front End가 포함된 코드를 가진 개발자로 제한

*비트 연산자란? ​

비트 연산자는 프로그래밍에서 정수의 이진 표현(bit representation)을 직접 조작할 수 있도록 해주는 연산자입니다. SQL에서도 비트 연산자를 사용할 수 있으며, 주로 특정 비트가 설정되어 있는지를 확인하거나, 비트 플래그를 조작할 때 유용하게 사용됩니다.

 

ORDER BY에서 ID를 기준으로 오름차순 정렬

select ID, EMAIL, FIRST_NAME, LAST_NAME
from DEVELOPERS
where SKILL_CODE & (select sum(CODE) 
                    from SKILLCODES 
                    where CATEGORY = 'Front End')
order by ID

String, Date

루시와 엘라 찾기(Lv2)

문제 설명

 

문제

동물 보호소에 들어온 동물 중 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 동물의 아이디와 이름, 성별 및 중성화 여부를 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요.

​

풀이

SELECT에서 동물의 아이디와 이름, 성별 및 중성화 여부를 조회 ​

​

WHERE에서 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty로 설정

​

ORDER BY에서 아이디 오름차순 정렬

SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')
ORDER BY ANIMAL_ID;
저작자표시 비영리 변경금지 (새창열림)

'SQL > 프로그래머스' 카테고리의 다른 글

프로그래머스 | SQL 스터디 13  (1) 2024.09.15
프로그래머스 | SQL 스터디 12  (0) 2024.09.15
프로그래머스 | SQL 스터디 10  (3) 2024.09.10
프로그래머스 | JOIN - 없어진 기록 찾기 (+JOIN정리)  (1) 2024.09.10
프로그래머스 | SQL 스터디 9  (1) 2024.09.03
'SQL/프로그래머스' 카테고리의 다른 글
  • 프로그래머스 | SQL 스터디 13
  • 프로그래머스 | SQL 스터디 12
  • 프로그래머스 | SQL 스터디 10
  • 프로그래머스 | JOIN - 없어진 기록 찾기 (+JOIN정리)
kimmalgu
kimmalgu
DA(데이터 분석가) 블로그
  • kimmalgu
    kimmalgu 님의 블로그
    kimmalgu
  • 전체
    오늘
    어제
    • 분류 전체보기 (53)
      • 통계 (3)
      • [패캠] 데이터분석 부트캠프 (10)
        • 프로젝트 (2)
        • 수업 정리 (8)
      • 파이썬 (8)
        • 통계전산처리 (7)
      • SQL (27)
        • 프로그래머스 (20)
        • HackerRank (5)
        • LeetCode (1)
      • 코테 (0)
      • 독후감 (5)
  • 블로그 메뉴

    • 글쓰기
    • 홈
    • 태그
    • 방명록
  • hELLO· Designed By정상우.v4.10.0
kimmalgu
프로그래머스 | SQL 스터디 11 (비트연산자 &)
상단으로

티스토리툴바