PostgreSQL GROUP BY절 을 사용하여 행을 그룹으로 나누는 방법
SELECT 명령문에서 반환된 행을 그룹으로 나눕니다.
SELECT
column_1,
column_2,
...,
aggregate_function(column_3)
FROM
table_name
GROUP BY
column_1,
column_2,
...;
- statement 절은 GROUP BY 절에 지정된 열의 값으로 나누고 각 그룹에 대한 값을 계산합니다.
1) GROUP BY집계 함수 없이 PostgreSQL 사용 예
SELECT
customer_id
FROM
payment
GROUP BY
customer_id;
2) 함수 예제 GROUP BY와 함께 PostgreSQL 사용하기SUM()
SELECT
customer_id,
SUM (amount)
FROM
payment
GROUP BY
customer_id;
- GROUP BY는 SUM과 함께 사용하면 유용합니다.
-정렬도 가능합니다.
SELECT
customer_id,
SUM (amount)
FROM
payment
GROUP BY
customer_id
ORDER BY
SUM (amount) DESC;
3) JOIN 절과 함께 PostgreSQL GROUP BY 절 사용
-- payment 테이블과 customer테이블을 조인하고 이름별로 고객을 그룹화하는 쿼리
SELECT
first_name || ' ' || last_name full_name,
SUM (amount) amount
FROM
payment
INNER JOIN customer USING (customer_id)
GROUP BY
full_name
ORDER BY amount DESC;
4) COUNT()와 함께 PostgreSQL GROUP BY 절 사용
SELECT
staff_id,
COUNT (payment_id)
FROM
payment
GROUP BY
staff_id;
5) 여러 열과 함께 PostgreSQL GROUP BY 절 사용
SELECT
customer_id,
staff_id,
SUM(amount)
FROM
payment
GROUP BY
staff_id,
customer_id
ORDER BY
customer_id;
6) DATA()와 함께 PostgreSQL GROUP BY 절 사용
SELECT
DATE(payment_date) paid_date,
SUM(amount) sum
FROM
payment
GROUP BY
DATE(payment_date);
- 날짜별로 지불을 그룹화하려면 먼저 타임스탬프를 날짜로 변환한 다음 결과 날짜를 기준으로 지불을 그룹화 하는 기능을 사용합니다.
반응형
'SW ENGINEERING > Postgres' 카테고리의 다른 글
[PostgreSQL] BASIC - UNION (0) | 2021.09.02 |
---|---|
[PostgreSQL] BASIC - HAVING (0) | 2021.09.02 |
[PostgreSQL] BASIC - INNER JOIN (0) | 2021.09.02 |
[PostgreSQL] BASIC - NATURAL JOIN (0) | 2021.09.02 |
[PostgreSQL] BASIC - Cross JOIN (0) | 2021.09.02 |
최근댓글