리트코드 SQL 문제 풀이
Employee Table : id | salary.
salary가 2번째로 높은 인원의 salary를 출력하는 문제.
만일 테이블 개수가 1게이면 null이 출력되어야 함.SELECT MAX(salary) AS SecondHighestSalary FROM Employee WHERE salary < (SELECT MAX(salary) FROM SecondHighestSalary)
문제 풀이는 간단하게 생각했다.
테이블을 2개로 만들고 MAX(salary)를 조회한다. 단 앞서 만든 테이블의 MAX(salary)값이 더 커야만 한다.
Acitivities : sell_date | product
각 날짜 별로 팔린 물건 수와 각 물건 이름을 나열하는 문제.
이때 물건 이름은 순서대로 정렬할 것.
EX) Basketball,Headphone,T-shirtSELECT sell_date, COUNT(DISTINCT product) AS num_sold, GROUP_CONCAT(DISTINCT product ORDER BY product SEPARATOR ',') AS products FROM Activities GROUP BY sell_date ORDER BY sell_date;
GROUP_CONCAT() 함수를 활용하여 한 열에 저장되어 있는 데이터를 한 행에 있는 데이터로 변경할 수 있다.
알아두면 아주 유용한 함수