일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 프로퍼티
- unix
- @AspectJ
- 마이바티스
- Di
- spring aop
- Spring JDBC
- POJO
- spring framework
- AOP
- pointcut
- 컨테이너
- Dependency Injection
- XML
- Linux
- @Spring-Test
- JDBC TEMPLATE
- Ubunt
- java
- 리눅스
- spring
- java spring
- @test
- Spring Boot
- STS
- JdbcTemplate
- @JUnit
- SpringJDBC
- Framework
- myBatis
Archives
- Today
- Total
개키우는개발자 : )
PostgreSQL GROUP BY 절 본문
반응형
실습 테이블 만들기 https://dog-developers.tistory.com/140
GROUP BY 란?
GROUP BY 절은 SELECT 문에서 반환된 행을 그룹으로 나눈다. 각 그룹에 대한 합계,평균,카운트 등을 계산할 수 있다.
기분문법
GROUP BY 절은 N개의 컬럼을 GROUP BY 하는경우 ,(콤마) 로 구분하며 GROUP BY 절은 FROM 또는 WHERE절 바로 뒤에 작성해야 합니다.
SELECT
COLUMN_1,
집계함수(COLUMN_2)
FROM
TABLE_NAME
GROUP BY COLUMN_1
실습
PAYMENT 테이블은 payment_id 가 기본키 이기때문에 유일한 값입니다. 하지만 customer_id(1명의 id) 는 여러개의 payment_id 를 가질수 있습니다.
- PAYMENT 테이블을 CUSTOMER_ID 기준으로 GROUP BY 한다.
SELECT
CUSTOMER_ID
FROM
PAYMENT
GROUP BY
CUSTOMER_ID;
단순한 GROUP BY는 아래와 같은 방법으로 조회 가능합니다.
SELECT
DISTINCT CUSTOMER_ID
FROM
PAYMENT
GROUP BY
CUSTOMER_ID;
- PAYMENT 테이블을 CUSTOMER_ID 기준으로 GROUP BY 하고 AMOUNT의 합계 값을 기준으로 내림차순 정렬 합니다.
SELECT
CUSTOMER_ID,
SUM(AMOUNT) AS AMOUNT_SUM
FROM
PAYMENT
GROUP BY
CUSTOMER_ID
ORDER BY
SUM(AMOUNT) DESC;
-- 동일한 방법
SELECT
CUSTOMER_ID,
SUM(AMOUNT) AS AMOUNT_SUM
FROM
PAYMENT
GROUP BY
CUSTOMER_ID
ORDER BY 2 DESC;
- PAYMENT 테이블을 STAFF_ID 기준으로 PAYMENT_ID의 카운트를 조회하며 STAFF_ID 기준으로 GROUP BY 합니다.
SELECT
STAFF_ID,
COUNT(PAYMENT_ID) AS COUNT
FROM
PAYMENT
GROUP BY
STAFF_ID;
- 위의 조건에서 STAFF의 이름까지 같이 조회하고 싶을때 JOIN을 사용합니다.
SELECT
A.STAFF_ID,
COUNT(A.PAYMENT_ID) AS COUNT,
B.FIRST_NAME,
B.LAST_NAME
FROM
PAYMENT A,
STAFF B
WHERE
A.STAFF_ID = B.STAFF_ID
GROUP BY
A.STAFF_ID,
B.STAFF_ID,
B.FIRST_NAME,
B.LAST_NAME;
반응형
'PostgreSQL > 조인과 집계 데이터' 카테고리의 다른 글
PostgreSQL GROUPING SET 절 (0) | 2019.11.05 |
---|---|
PostgreSQL HAVING 절 (0) | 2019.11.05 |
PostgreSQL NATURAL 조인 (0) | 2019.11.05 |
PostgreSQL CROSS 조인 (0) | 2019.11.03 |
PostgreSQL FULL OUTER 조인 (0) | 2019.11.03 |
Comments