Group By

홍태화·2024년 3월 22일

집계 함수 사용 전 데이터에 조건을 추가하려면 WHERE
집계 함수를 사용하여 그룹화된 결과에 조건을 추가하려면 HAVING

😊 각 호선 별 몇개의 역이 있는지 집계

select line , count(*)
from subway
group by line 
linecount_of_stations
1호선212
2호선123
3호선91
4호선62
5호선53
6호선39
7호선51
8호선17
9호선38
경강선11
경의선55
경춘선25
공항철도14
김포도시철도10
분당선37
서해선12
수인선14
신분당선13
용인경전철15
우이신설경전철13
의정부경전철15
인천2호선27
인천선29
동해선23

😊 지하철 노선에 중복된 이름이 몇개 있는지 파악

(즉 라인은 다르지만 이름은 같은 환승역)

SELECT name , COUNT(*)
from subway 
group by name 
HAVING count(*)>1;

😊 각 Location에 해당되는 지역구와 동의 개수

SELECT s.name , count(DISTINCT c.name) as city_count,count(DISTINCT t.name) as town_count
FROM State s
INNER JOIN City c ON s.id = c.state_id
INNER JOIN Town t ON c.id = t.city_id
GROUP BY s.name;
--namecity_counttown_count
--강원18315
--경기도42931
--경남22552
--경북23569
--광주5257
--대구9316
--대전5206
--부산16367
--서울25801
--세종124
--울산5110
--인천10277
--전남22463
--전북15434
--제주297
--충남16313
--충북14267

😊 판매 데이터를 지역(location)과 성별(gender)에 따라 그룹화하여 판매량을 계산

SELECT location, gender, COUNT(*) AS total_sales
FROM sales
GROUP BY location, gender;
--locationgendertotal_sales
--서울남성100
--서울여성150
--부산남성120
--부산여성130

😊 각 가격중 어떤 카테고리에 방문이 많은지 집계

select s.price,s.category_name ,count(v.id)
from store s left join visit_log v on s.id = v.store_id 
group by s.price,s.category_name ;
--pricecategory_namecount(v.id)
--40,000과자0
--60,000과자0
--60,0000
--110,0000
--130,000고기0
--70,000고기0
--60,000고기10
profile
우어어아아앙

0개의 댓글