[solvesql/SQLite] 친구 수 집계하기

주연·2025년 5월 29일

SQL 문제 풀이

목록 보기
33/34

문제 요약

  1. 모든 사용자에 대해 각 사용자의 친구 수를 집계하여 출력
  2. 정렬: 친구 수 많음 우선, 사용자 ID가 작음 우선

풀이

2번 이상 틀렸음..쩝..
1차 시도
-> 행의 개수가 다름
모든 사용자에 대해 라는 조건이 있기 때문에 users 테이블과 조인하여 사용해야함
2차 시도
-> 3863번째 레코드, 2번째 컬럼의 값이 서로 다름 (제출: 12, 정답: 34)
COUNT(*)가 아닌 COUNT(user_b_id)로 해야함

SELECT user_id
      , COUNT(user_b_id) num_friends
FROM users us
LEFT JOIN (
  SELECT user_a_id, user_b_id
  FROM edges
  UNION
  SELECT user_b_id, user_a_id
  FROM edges
) d
ON us.user_id = d.user_a_id
GROUP BY user_id
ORDER BY num_friends DESC, user_id
profile
공부 기록

0개의 댓글