[LeetCode] 178. Rank Scores
·
코딩테스트/MySQL
🔗 Problem Linkhttps://leetcode.com/problems/rank-scores/description/❔Thinkingid와 score가 적힌 테이블에서, score가 높은 순서대로 순위를 매겨 반환한다.동점자는 동일한 순위를 부여하고, 순위에 간격은 없도록 한다.💻Solution1. Dense_Rank 함수 사용SELECT score, DENSE_RANK() OVER (ORDER BY score DESC) AS 'rank'FROM Scores 2. 함수 없이 구현자신보다 높은 점수의 개수를 순위로 활용한다.DISTINCT는 동일한 점수를 한번만 세도록 한다.scores 테이블이 커질수록 성능이 저하된다.SELECT s1.score, (SELECT COUNT(DISTINCT ..
[LeetCode] 1174. Immediate Food Delivery II
·
코딩테스트/MySQL
🔗 Problem Link Immediate Food Delivery II - LeetCode Can you solve this real interview question? Immediate Food Delivery II - Table: Delivery +-----------------------------+---------+ | Column Name | Type | +-----------------------------+---------+ | delivery_id | int | | customer_id | int | | order_date | d leetcode.com ❔Thinking 고객이 원하는 배송일자와 주문일자가 일치하면 "immediate" 각 고객들의 첫 주문 가운데, "immediate"..
[LeetCode] 1280. Students and Examinations
·
코딩테스트/MySQL
🔗 Problem Link Students and Examinations - LeetCode Can you solve this real interview question? Students and Examinations - Table: Students +---------------+---------+ | Column Name | Type | +---------------+---------+ | student_id | int | | student_name | varchar | +---------------+---------+ student_id is leetcode.com ❔Thinking 학생 개개인의 과목별 시험 본 횟수를 알아내야 한다. 시험을 보지 않은 과목은 0번 본 것으로 생각해야 한다. 💻Sol..
[Programmers] Level 2. 가격대 별 상품 개수 구하기
·
코딩테스트/MySQL
🔗 Problem Link 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❔Thinking 상품 코드와 상품의 가격이 표시된 테이블에서 가격대와 가격대 별 개수를 반환한다. 💻Solution SELECT (PRICE DIV 10000) * 10000 AS PRICE_GROUP, COUNT((PRICE DIV 10000) * 10000) AS PRODUCTS FROM PRODUCT GROUP BY PRICE_GROUP ORDER BY PRICE_GROUP 🗝️keypoint / 연산과 DIV의 연산의 차이는 소수점 아래 결과의 출력 여부이다. (DIV는 결..
[Programmers] Level 2. 조건별로 분류하여 주문상태 출력하기
·
코딩테스트/MySQL
🔗 Problem Link 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❔Thinking FOOD_ORDER에서 5월 1일을 기준의 주문ID, 제품ID, 출고일자, 출고 여부를 반환한다. 💻Solution SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE, '%Y-%m-%d') AS 'OUT_DATE', CASE WHEN OUT_DATE > '2022-05-01' THEN '출고대기' WHEN OUT_DATE
[Programmers] Level 2. 진료과별 총 예약 횟수 출력하기
·
코딩테스트/MySQL
🔗 Problem Link 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❔Thinking APPOINTMENT 테이블에서 2022년 05월에 예약한 횟수를 진료과코드별로 출력한다. 💻Solution SELECT MCDP_CD AS '진료과코드', COUNT(APNT_YMD) AS '5월예약건수' FROM APPOINTMENT WHERE SUBSTRING(APNT_YMD, 1, 7) = '2022-05' GROUP BY MCDP_CD ORDER BY `5월예약건수` ASC, `진료과코드` ASC 🗝️keypoint MySQL에서 Alias를 로직에 활용하..