> mysql -h 엔드포인트 -P 3306 -u admin -p zerobase
여러 칼럼 혹은 테이블 전체 칼럼으로부터 하나의 결과값을 반환하는 함수
총 갯수를 계산해 주는 함수
police_station 테이블에서 데이터는 모두 몇 개?
select count(*) from police_station;
결과
📌 컬럼에 count(*)를 넣어주면 컬럼의 결과 값의 개수를 세어준다.
crime_status 테이블에서 경찰서는 총 몇군데?
select count(distinct police_station) from crime_status;
crime_type 은 총 몇 가지?
select count(distinct crime_type) from crime_status;
숫자 칼럼의 합계를 계산해주는 함수
범죄 총 발생건수는?
select sum(case_number) from crime_status where status_type='발생';
숫자 칼럼의 평균을 계산해주는 함수
🗒️ AVG예제 1
평균 폭력 검거 건수는?
-> select avg (case_number) -> from crime_status -> where crime_type like '폭력' and status_type ='검거';
-> select * -> from crime_status -> where crime_type like '폭력' and status_type ='검거'; ```
↪️ 해당되는 값의 리스트를 확인 가능
숫자 칼럼 중 가장 작은 값을 찾아주는 함수
🗒️ MIN예제 1
강도 발생 건수가 가장 적은 경우 몇 건?
-> select min(case_number) -> from crime_status -> where crime_type like '강도' and status_type='발생';
숫자 칼럼 중 가장 큰 값을 찾아주는 함수
🗒️ MAX예제 1
살인이 가장 많이 검거된 건수는?
-> SELECT max(case_number) -> FROM crime_status -> WHERE crime_type like '살인' and status_type like '검거';
`` 서초경찰서의 범죄 별 평균 검거 건수를 검색하고 확인하세요 ```
-> select avg(case_number) -> from crime_status -> where police_station like '서초' and status_type like '검거';
-> select distinct -> *from crime_status -> where police_station like '서초' and status_type like '검거';
↪️ 해당되는 값의 리스트를 확인 가능
구로경찰서와 도봉경찰서의 평균 살인 검거 건수를 검색하고 확인하세요.
-> SELECT avg(case_number) -> from crime_status -> where ( police_station like '도봉' or police_station like '구로') and -> crime_type like '살인' and status_type like '검거';
그룹화하여 데이터를 조회
🗒️ GROUP BY 예제
경찰서 별로 총 발생 범죄 건수를 검색
-> select police_station, sum(distinct case_number) 발생건수 -> from crime_status -> where status_type like '발생' -> group by police_station -> order by 발생건수 desc -> limit 5;
조건에 집계함수가 포함되는 경우 WHERE 대신 HAVING 사용
🗒️ GROUP BY 예제
경찰서 별로 발생한 범죄 건수의 합이 4000 건보다 보다 큰 경우를 검색
-> select police_station, sum(distinct case_number) count -> from crime_status -> where status_type like '발생' group by police_station having count >4000;
'대문' 으로 끝나는 이름의 경찰서 별 범죄발생 건수의 평균이 500건 이상인 경우를 검색하세요.
-> select police_station, avg(case_number) -> from crime_status -> where police_station like '%대문' and status_type like '발생' -> group by police_station -> having avg(case_number) >= 500;
select distinct * -> from crime_status -> where police_station like '서대문' and status_type like '발생';
↪️ 확인가능
❗ DISTINCT 를 사용하는 경우 (ORDER BY 를 사용할 수 없음)
경찰서 별로 가장 적게 검거한 건수 중 4건보다 큰 경우를 건수가 큰 순으로 정렬하여 검색하세요.
-> select police_station, min(case_number) -> from crime_status -> where status_type like '검거' -> group by police_station -> having min(case_number) >4 -> order by min(case_number) desc;
-> select min(case_number) -> from crime_status -> where status_type like '검거' and police_station like'중랑';
↪️ 확인 가능