작성
·
540
0
안녕하세요, GROUP BY 함수 관련 질문입니다.
GROUP BY SupplierID
GROUP BY SupplierID 를 했을 때 SupplierID는 자동으로 중복이 제거가 된 뒤 평균가격이 반환되는 건가요?
GROUP BY SupplierID, CategoryID 는 무슨 뜻인지 모르겠어요
SupplierID별 평균가격과 CategoryID별 평균 가격 이렇게 2개의 결과가 나와야 하는 건가요?
답변 1
0
시간이 좀 지나서 혹시나 하지만
GROUP BY는 같은 값을 가지고 있는 행[컬럼]을 묶어줍니다.[그룹화]
묶어줄 뿐이지 평균 가격을 반환해 주지는 않습니다. 평균 가격을 가져오기 위해서는 avg() 함수를 사용합니다.
GROUP BY를 사용하실 때에는
SELECT [column...] FROM TABLE GROUP BY [column...]
SELECT 뒤에 실제 테이블에 있는 컬럼을 보기 위해 쓰셨으면 GROUP BY에 그대로 적어 주셔야 합니다.
SupplierID, CategoryID 가 나와야 해서 SELECT 뒤에 쓰셨고 GROUP BY 뒤에도 쓰시는 겁니다.
집계 함수로 만든 컬럼은 따로 안 써주셔도 됩니다.
SELECT supplierId, caregoryid, avg(price) <- supplierId, caregoryid는 실제 테이블에 있는 컬럼이고
avg는 평균을 내주는 집계 함수입니다.
간단하게 가상의 컬럼을 만든다고 생각해 주세요 만약 select * from 을 사용하셨으면
SELECT * FROM table group by id; [id라는 컬럼이 있다 치고] 이런식으로 적어주셔도 됩니다.
원하는 컬럼만 확인시에는 select 뒤에 다적어주시고 group by에도 동일하게 적어주세요