SQL

SQL 5장 실습문제

봄다온 2025. 1. 23. 22:18

소스파일 : https://github.com/bjpublic/postgresql

1

전국의 인구수 총합을 연도별로 표시

# 정답. + || '명' 해주면 인구수 뒤에 "명"도 붙는다
select 년도, sum(총인구수) || '명' as 총인구수 from population_by_year group by 1 order by 1;
 년도 |  총인구수
------+------------
 2010 | 50515666명
 2011 | 50734284명
 2012 | 50948272명
 2013 | 51141463명
 2014 | 51327916명
 2015 | 51529338명
 2016 | 51696216명
 2017 | 51778544명
 2018 | 51826059명
 2019 | 51849861명

2

최근 5년간 전국의 한 세대당 평균 인구수(총인구수/세대수)출력. 매 연도마다 세대당 평균 인구수 가중치는 같음

# 정답
# select 년도, avg(총인구수::numeric/세대수) as "세대별 인구수" from population_by_year where 년도>2014 group by 1 order by 1;
 년도 |   세대별 인구수
------+--------------------
 2015 | 2.4456321202059078
 2016 | 2.4196701402941569
 2017 | 2.3849263931716050
 2018 | 2.3436203352533591
 2019 | 2.2981488312100463

3

최근 5년간 (남자 인구수)/(여자 인구수) 성비의 평균을 행정구역별로 출력하고 가장 높은 지역이 어디인지 알아낼것.
매 연도마다 성비 가중치는 같음

# 정답
select 행정구역, avg(남자_인구수::numeric/여자_인구수) as "성비"  from population_by_year where 년도>2014 group by 1 order by 2 desc;
    행정구역    |          성비
----------------+------------------------
 울산광역시     | 1.05977047783121976000
 충청남도       | 1.03427558906899788000
 충청북도       | 1.02127341912271558000
 강원도         | 1.01434844240696254000
 경상남도       | 1.01369143389882504000
 경기도         | 1.01205668533611966000
 제주특별자치도 | 1.01135061335215862035
 경상북도       | 1.01116557696834506000
 인천광역시     | 1.00727961919094530000
 전라남도       | 1.00180900587675544213
 대전광역시     | 0.99939720383085908403
 세종특별자치시 | 0.99858973843256411581
 전라북도       | 0.98925461807741880469
 대구광역시     | 0.98397313281769696024
 광주광역시     | 0.98154841112622849929
 부산광역시     | 0.97028079436224536012
 서울특별시     | 0.96046319789255070329

'SQL' 카테고리의 다른 글

SQL 집계함수  (0) 2025.01.23
SQL 명령어 우선순위  (0) 2025.01.23
SQL GROUP BY, HAVING  (0) 2025.01.23
SQL 4장 실습문제  (0) 2025.01.20
SQL DISTINCT  (0) 2025.01.20