일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- boxing
- 싱글톤
- 스프링
- 콜렉션
- https://start.spring.io
- 언박싱
- 메소드
- Scanner
- 제네릭
- suvlet
- bootstrap
- Java
- 루프
- 제너릭
- wrapper
- 자동형변환
- 박싱
- 내장객체
- 싱글턴
- 클래스
- 빌드
- maven
- start.spring.io
- Jenkins
- unboxing
- 인텔리제이
- dependency
- Short
- 컬렉션
- 무한
Archives
- Today
- Total
Developer Gonie
[6주차] 19. group by 사용법(그룹함수와 같이 조회되는 일반 컬럼이 존재하는 경우)*** 본문
K-DigitalTraining 강의/2. Oracle + PLSQL
[6주차] 19. group by 사용법(그룹함수와 같이 조회되는 일반 컬럼이 존재하는 경우)***
이대곤 2022. 6. 14. 16:11* select 뒤 필드 목록에 그룹함수만 오는게 아니라 일반 컬럼까지 같이 나온다면, 이 일반 컬럼은 모두 group 을 묶어줘야 한다.
그룹함수란? https://ldgeao99-developer.tistory.com/206?category=1079113
* where는 from 바로 다음에, group by는 where 다음에, order by는 group by 뒤에 위치해야 한다.
-- 그룹함수와 조회되는 필드가 1개 인 경우
select gender, count(*) 인원수
from members
group by gender; -- gender가 같은 행을 하나로 합쳐 표현하라는 의미
GENDER 인원수
------ ----------
여 4
남 6
-- 그룹함수와 조회되는 필드가 2개 인 경우
select gender, depart, count(*) 인원수
from members
group by gender, depart; -- gender와 depart 가 같은 행을 하나로 합쳐 표현하라는 의미
GENDER DEPART 인원수
------ ---------- ----------
여 영업부 2
남 홍보부 1
여 개발부 1
여 홍보부 1
남 영업부 3
남 개발부 2
select gender, depart, count(*) 인원수
from members where gender ='여'
group by gender, depart; -- gender와 depart 가 같은 행을 하나로 합쳐 표현하라는 의미
GENDER DEPART 인원수
------ ---------- ----------
여 영업부 2
여 개발부 1
여 홍보부 1
select depart
from members
group by depart;
DEPART
-------
영업부
개발부
홍보부
--위와 결과가 같음
select distinct(depart)
from members;
--위와 결과가 같음
select distinct depart
from members;
DEPART
-------
영업부
개발부
홍보부
--부서별 연봉의 평균구하기
select depart, avg(salary)
from members
group by depart;
DEPART AVG(SALARY)
-------------------- -----------
영업부 480
개발부 466.666667
홍보부 500100
--급여가 500이상인 레코드를 대상으로 부서별 급여 평균 조회
select depart, avg(salary) from members
where salary >= 500
group by depart;
DEPART AVG(SALARY)
---------- -----------
영업부 666.666667
개발부 550
홍보부 1000000
--부서별 인원수 구하기
select depart 부서, count(*) 인원수
from members
group by depart;
부서 인원수
-------------------- ----------
영업부 5
개발부 3
홍보부 2
--성별 별로 인원수, 급여 평균 조회
select gender, count(*), avg(salary)
from members
group by gender;
GENDER COUNT(*) AVG(SALARY)
------ ---------- -----------
여 4 275
남 6 167150
--부서별 급여평균, 인원수, 급여최고치, 급여최소치
select depart, avg(salary), count(*), max(salary), min(salary)
from members
group by depart;
DEPART AVG(SALARY) COUNT(*) MAX(SALARY) MIN(SALARY)
-------------------- ----------- ---------- ----------- -----------
영업부 480 5 800 100
개발부 466.666667 3 600 300
홍보부 500100 2 1000000 200
--개발부에 대해서만 급여평균, 인원수, 급여최고치, 급여최소치
select depart, avg(salary), count(*), max(salary), min(salary)
from members
where depart = '개발부'
group by depart;
DEPART AVG(SALARY) COUNT(*) MAX(SALARY) MIN(SALARY)
-------------------- ----------- ---------- ----------- -----------
영업부 480 5 800 100
개발부 466.666667 3 600 300
홍보부 500100 2 1000000 200
select depart, avg(salary), count(*), max(salary), min(salary)
from members
where depart = '개발부'
group by depart
order by depart asc;
'K-DigitalTraining 강의 > 2. Oracle + PLSQL' 카테고리의 다른 글
[6주차] 21. where, group by, having, order by 전부 사용시 입력순서* (0) | 2022.06.15 |
---|---|
[6주차] 20. having 사용법(조건으로 그룹함수를 필요로 하는 경우)*** (0) | 2022.06.15 |
[6주차] 18.눈에 보이지 않지만 자동으로 생성되는 테이블 및 이들의 용도 (0) | 2022.06.14 |
[6주차] 17. 쿼리문 사용시 사용할 수 있는 주요함수(그룹함수 + 기타)*** (0) | 2022.06.14 |
[6주차] 16. SQL Developer 사용법 (0) | 2022.06.14 |
Comments