https://leetcode.com/problems/students-and-examinations/description/
Students and Examinations
# 학생별 시험에 참가한 횟수 조회
# 학생 아이디 기준 정렬
SELECT
st.student_id,
st.student_name,
su.subject_name,
COUNT(ex.subject_name) AS attended_exams
FROM
students st
CROSS JOIN # 학생별로 시험과목 다 조회해야하기 때문에 CROSS JOIN
subjects su
LEFT JOIN
examinations ex
ON st.student_id = ex.student_id
AND su.subject_name = ex.subject_name
GROUP BY
1,2,3
ORDER BY
1 ;
💡 CROSS JOIN : 모든 경우의 수를 다 도출 -> ON 필요없음
https://leetcode.com/problems/managers-with-at-least-5-direct-reports/description/
Managers with at Least 5 Direct Reports
# 직속 보고자 5명 이상인 관리자
# 1) 직속 보고자 5명인 관리자 아이디 찾기
SELECT
managerId,
COUNT(*) AS cnt_managerId
FROM
Employee
GROUP BY
managerId
HAVING COUNT(*) >= 5)

# 2) 관리자 이름과 매칭
WITH a AS
(SELECT
managerId,
COUNT(*) AS cnt_managerId
FROM
Employee
GROUP BY
managerId
HAVING COUNT(*) >= 5)
SELECT
e.name # 관리자 이름조회
FROM
Employee e JOIN a ON e.id = a.managerId
'SQL > 문제' 카테고리의 다른 글
| SQL | Monthly Transactions, Immediate Food Delivery II (0) | 2025.01.07 |
|---|---|
| SQL | Average Selling Price, Percentage of Users Attended a Contest (0) | 2025.01.06 |
| SQL | Customer Who Visited but Did Not Make Any Transactions, Rising Temperature (0) | 2025.01.05 |
| QCC 1회차 (0) | 2025.01.05 |
| SQL | 상품을 구매한 회원 비율 구하기 (0) | 2025.01.05 |