4번 문제 group by 질문
315
12 câu hỏi đã được viết
select h.hacker_id, h.name from Submissions s
inner join Hackers h on s.hacker_id = h.hacker_id
inner join Challenges c on s.challenge_id = c.challenge_id
inner join Difficulty d on c.difficulty_level = d.difficulty_level
where d.score = s.score
group by h.hacker_id having count(h.hacker_id) > 1
order by count(h.hacker_id) desc, h.hacker_id
제가 푼 답안인데 틀렸다고 나옵니다.
group by h.hacker_id, h.name 2개를 해줘야 정답으로 나오는데 hacker_id만 그룹화 해서 묶어도 되는거 아닌가요? select 에 h.hacker_id, h.name 이 두개의 컬럼을 다 group으로 묶어줘야 되는 이유가 있나요? 이해가 되지 않습니다.
Câu trả lời 2
1
SELECT 절에는 GROUP BY 기준이 되는 컬럼과 집계 함수로 선택된 컬럼만 포함되어야 합니다. 만약 집계되지 않은 컬럼(여기서는 h.name)이 SELECT에 포함되었는데, 이 컬럼이 GROUP BY에도 없다면 쿼리가 올바르게 동작하지 않을 수 있습니다.
0
안녕하세요, 인프런 AI 인턴이에요.
SQL에서 GROUP BY 구문은 결과를 그룹화하고 집계 함수(예: COUNT, SUM, AVG 등)와 함께 사용할 때 주로 활용됩니다. GROUP BY 절에는 결과를 그룹화할 열을 지정해야 합니다.
이 경우에는 h.hacker_id 열을 GROUP BY 절에 포함시켰을 때도 작동하지만, h.name 열을 추가하여 h.hacker_id와 h.name을 함께 그룹화해야 정확한 결과가 나옵니다. 그룹화되지 않은 열은 집계 함수를 사용할 때 컴퓨터가 어떤 값을 선택해야 할지 알 수 없기 때문입니다. 따라서 h.hacker_id와 h.name 열 모두를 GROUP BY 절에 포함시키는 것이 좋습니다.
그리고, COUNT(h.hacker_id)는 해당 그룹 내의 h.hacker_id 값들의 개수를 세는 것입니다. 위의 쿼리는 count(h.hacker_id)가 1보다 큰 그룹들을 선택하고, 이를 그룹 내에서 개수가 큰 순으로 정렬하는 것입니다.
즉, h.hacker_id와 h.name을 함께 그룹화한 이유는 각 그룹 내의 h.hacker_id와 h.name의 개수가 1보다 큰 그룹들을 선택하고, 이를 개수가 큰 순으로 정렬하기 위해서입니다.
그룹화된 열을 SELECT 절에 모두 나열하지 않더라도, GROUP BY 절에 포함된 열을 SELECT 절에 포함시켜야 합니다. 따라서 SELECT 절에 h.hacker_id와 h.name을 모두 나열해주셔야 합니다.
자세한 내용은 SQL 문법과 GROUP BY 구문에 대해 더 공부하시면 좋을 것 같아요. 추가 질문이 있으시면 언제든지 해주세요. 좋은 결과 있기를 바라요!
섹션 4번에 2번 문제 질문입니다.
0
100
2
4번 문제
0
79
1
Top competitors 에서 having count(h.hacker_id)로 해도 되나요?
0
255
1
leetcode 620 group by 질문이요
0
198
2
강의 일시정지/ 기간연장 검토 요청
0
376
1
세트2 4번 문제풀이 해설에 관한 질문
0
347
2
Weather Observation Station 11_ not like 사용
0
263
1
Placements에서 LEFT JOIN 뒤에 ON 조건
0
279
1
Set2 4번문제 질문 - New Companies
0
312
1
WHERE절 안 쓰고 HAVING COUNT(D.score = S.score) > 1 쓰면 왜 안되나요?
-1
698
1
as 2 space-separated values. 무슨 말인가요???
0
426
1
Weather observation Station 11 관련 질문
1
368
2
4번문제풀이
0
449
1
섹션3. Weather Observation Station 18 문제 관련
0
368
2
섹션 2에 1,2번 문제풀이 관하여
0
427
1
기한연장문의
0
326
1
Weather observation station 11 문제 not like
-1
359
1
inner join 과 left join
1
591
1
4번 BST 문제 틀리는 이유
0
338
1
4번 문제 질문
0
285
1
620. Not Boring Movies 문제 질문드립니다
0
280
1
binary tree 질문 입니다.
0
292
1
Top Competitors 질문있습니다 ㅠㅠ
0
239
1
set4. 4번
0
314
1

