본문 바로가기

DATA/SQL

[SQL] SELECT - DISTINCT, LIMIT, GROUP BY, HAVING

# 중복 된것 제외
SELECT DISTINCT CountryCode FROM city;

# 상위 N개만 출력
SELECT DISTINCT CountryCode FROM city
LIMIT 10;

# GROUP BY 그룹으로 묶어주는 역할
SELECT CountryCode , AVG(Population) as 'average' FROM city
GROUP BY CountryCode;

# 나라별 도시 수
SELECT CountryCode, COUNT(Name) as 'city counts' FROM city
GROUP BY CountryCode;

# 전체 도시 수
SELECT COUNT(*) FROM city;

# 도시 당 인구 수 평균
SELECT AVG(Population) FROM city;

# GROUP BY 절에서 조건은 HAVING 집계함수 조건
SELECT CountryCode, MAX(Population) as max
FROM city
GROUP BY CountryCode
HAVING AVG(Population) > 500000;
  • DISTINCT ( 중복값 제거)
  • LIMIT ( 출력수 제한 )
  • GROUP BY ( pandas groupby 랑 같음 ) 
    • Aggregate Func.
      • AVG
      • MIN
      • MAX
      • COUNT
      • COUNT(DISTINCT) 중복 제외된 행의 갯수 
      • STDEV 표준편차
      • VARIANCE 분산
  • HAVING 
    • 집계함수 조건줄 때 사용 ( GROUP BY 사용 시 조건 )
    • 반드시 GROUP BY 절 다음에 나와야 함
    • HAVING Population > 30 하면 오류 ( 집계함수 아니기 때문 ? ) 
    • HAVING MAX(Population) > 30 ok

'DATA > SQL' 카테고리의 다른 글

[SQL] SELECT - ROLLUP, JOIN  (0) 2022.01.11
[SQL] SELECT - Sub Query, ANY(SOME), ALL, ORDER BY  (0) 2022.01.11
[SQL] SELECT - WHERE, BETWEEN, IN, LIKE  (0) 2022.01.10
[SQL] 기본 쿼리  (0) 2022.01.10
[SQL] DML, DDL, DCL  (0) 2022.01.10