Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- DATABASE
- DB
- onetoone
- PostgresDB
- 밴쿠버응급실
- sql
- 자바스크립트
- SubqueryFilter
- DBFilter
- statement
- PreparedStatement
- python
- Collections
- 데이터베이스
- subquery
- insert_into
- MySQL
- cursor()
- query
- 파이썬
- Join
- sqlite3
- PostgreSQL
- MongoDB
- insertOne
- 몽고디비
- postgres
- javascript
- python데이터베이스연동
- 서브쿼리
Archives
- Today
- Total
새벽코딩
[PostgresDB] 6. Aggregate Function (feat. SUM, AVG, MIN, MAX) 본문
Programming/Postgres DB
[PostgresDB] 6. Aggregate Function (feat. SUM, AVG, MIN, MAX)
midnightcoder 2022. 12. 15. 02:43데이터 준비
-- 테이블 생성
CREATE TABLE transactions (
id INTEGER, -- 거래 고유 번호
amount DECIMAL(12, 2), -- 거래 금액(총 12자리 숫자, 소수점 이하 2자리까지)
msg VARCHAR(15), -- 최대 15자리 글자
created_at TIMESTAMPTZ -- 거래 시각(+타임존)
);
-- 레코드 등록
INSERT INTO
transactions(id, amount, msg, created_at)
VALUES
(1, -24.20, 'Google', '2021-11-01 10:02:48'),
(2, -36.30, 'Amazon', '2021-11-02 10:01:05'),
(3, 557.13, 'Udemy', '2021-11-10 11:00:09'),
(4, -684.04, 'Bank of America', '2021-11-15 17:30:16'),
(5, 495.71, 'PayPal', '2021-11-26 10:30:20'),
(6, 726.87, 'Google', '2021-11-26 10:31:04'),
(7, 124.71, 'Amazon', '2021-11-26 10:32:02'),
(8, -24.20, 'Google', '2021-12-01 10:00:21'),
(9, -36.30, 'Amazon', '2021-12-02 10:03:43'),
(10, 821.63, 'Udemy', '2021-12-10 11:01:19'),
(11, -837.25, 'Bank of America', '2021-12-14 17:32:54'),
(12, 695.96, 'PayPal', '2021-12-27 10:32:02'),
(13, 947.20, 'Google', '2021-12-28 10:33:40'),
(14, 231.97, 'Amazon', '2021-12-28 10:35:12'),
(15, -24.20, 'Google', '2022-01-03 10:01:20'),
(16, -36.30, 'Amazon', '2022-01-03 10:02:35'),
(17, 1270.87, 'Udemy', '2022-01-10 11:03:55'),
(18, -540.64, 'Bank of America', '2022-01-14 17:33:01'),
(19, 732.33, 'PayPal', '2022-01-25 10:31:21'),
(20, 1328.72, 'Google', '2022-01-26 10:32:45'),
(21, 824.71, 'Amazon', '2022-01-27 10:33:01'),
(22, 182.55, 'Coupang', '2022-01-27 10:33:25'),
(23, -24.20, 'Google', '2022-02-03 10:02:23'),
(24, -36.30, 'Amazon', '2022-02-03 10:02:34'),
(25, -36.30, 'Notion', '2022-02-03 10:04:51'),
(26, 1549.27, 'Udemy', '2022-02-14 11:00:01'),
(27, -480.78, 'Bank of America', '2022-02-14 17:30:12')
;
-- 레코드 조회
SELECT * FROM transactions;
Data type 중에 DECIMAL 과 TIMESTAMPTZ가 새로 보인다
DECIMAL(총 숫자 자리수, 소수점 자리) 이 형식으로 표현
e.g.
DECIMAL(10,2) -- 총 10자리 숫자, 소수점 이하 2자리 까지
TIMESTAMPTZ 날짜 + 시간을 나타내는 타입
- 거래 내역의 총합 : SUM(더하고 하는 column)
-- A. 거래 내역의 총합은?
SELECT
SUM(amount)
FROM
transactions
;
결과
- 최대 거래 금액과 최저 거래 금액 : MIN(column) & MAX(column)
-- B. 최대 거래 금액과 최저 거래 금액
SELECT
MIN(amount),
MAX(amount)
FROM
transactions
;
- 'Google' 과 거래한 총 횟수는 ?
-- C. 'Google'과 거래한 총 횟수는?
SELECT
COUNT(*)
FROM
transactions
WHERE
msg = 'Google'
;
결과
- 거래 내역의 평균 금액은 ?
-- D. 거래 내역의 평균 금액?
SELECT
AVG(amount)
FROM
transactions
;
단, 위의 숫자를 소수점 2째 자리까지 표현하려면 ROUND(타켓, 소수점자리) 를 사용
ROUND(AVG(amount), 2)
- 거래 메시지 목록을 중복되지 않게 추출하려면? DISTINCT(column) 함수 사용
-- E. 거래 메세지 목록을 중복되지 않게 추출하면?
SELECT
DISTINCT(msg)
FROM
transactions
;
'Programming > Postgres DB' 카테고리의 다른 글
[PostgresDB-2] 8. Relationship ( 1:N, 1:1, M:N) & PK, FK (0) | 2022.12.15 |
---|---|
[PostgresDB] 7. Timestamptz (0) | 2022.12.15 |
[PostgresDB] 5. 총점 및 평균 ( AS 사용) (0) | 2022.12.15 |
[PostgresDB] 4. 비교 및 논리 연산자 (Filter) (0) | 2022.12.15 |
[PostgresDB] 3. 데이터 CRUD(INSERT, SELECT, UPDATE, DELETE) (0) | 2022.12.14 |