일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Linux
- Spring Boot
- 프로퍼티
- java
- JdbcTemplate
- STS
- XML
- spring
- 컨테이너
- @JUnit
- JDBC TEMPLATE
- Dependency Injection
- @AspectJ
- @Spring-Test
- java spring
- spring framework
- Framework
- @test
- Spring JDBC
- unix
- POJO
- 마이바티스
- 리눅스
- Di
- spring aop
- myBatis
- AOP
- SpringJDBC
- Ubunt
- pointcut
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