반응형
우선 통계 연습을 위해
새로운 테이블을 생성했다.
CREATE TABLE transactions(
id INT,
amount DECIMAL(2), -- DECIAML(num, num1) num 최대 표현 가능 숫자, num1 소수점이하 표현 DECIMAL(10,2) 인 경우 최대 10자리 까지 표현되며, 소수점이하 2자리까지 표현된다.
msg VARCHAR(50),
created_at TIMESTAMPTZ-- 거래시각 + time zone 표기
);
처음에 생성할 떄 잘못해서
거래시각을 TIME으로만 설정해서 컬럼 properties 에서 직접 time with timezone으로 설정 변경하였다.
타임존과 함께 표기하려면 꼭 TIMESTAMPZ 라고 표기할것
그리고 DECIMAL 표현이 익숙하지 않아 단순 기억으로만 DECIMAL(2)로 했었는데, 그러면 최대표현 숫자 2로 설정되어
컬럼값을 삭제하였다.
그리고 새로운 컬럼을 생성하기 위해
ALTER TABLE transactions
ADD amount DECIMAL(12,2);
ALTER TABLE을 이용하여 amount DECIMAL(12,2) 로 새로운 컬럼을 생성함
허허 생각해보니 이러면 샘플 데이터 순서도 다바꿔야함;;;
일단 테이블을 삭제하자
테이블 삭제 쿼리
DROP TABLE transactions;
간단 명료하군, 버려라 명령어다.
다시한번 생성 쿼리를 날린 후 확인하니
자 이제 정상적인 순서로 들어갔다.
데이터 insert
INSERT INTO transactions
VALUES
(1, -24.20, 'Google', '2021-11-01 10:02:48'),
(2, -36.30, 'Amazon', '2021-11-02 10:01:05') ;
timestamp는 '' 안에 들어가야한다.
아무튼 정상적으로 조회된다.
1. 출입금 내역의 합계
SELECT SUM(amount) FROM transactions;
1.1 출입금 내역의 합계를 [합계]로 명칭
SELECT SUM(amount) AS 합계 FROM transactions;
2. 최대 거래금액과 최저거래금액
SELECT
MAX(amount) AS 최대거래금액,
MIN(amount) AS 최저거래금액
FROM transactions;
3. Google과의 거래 횟수
SELECT
COUNT('Google') AS Google거래회수
FROM transactions
WHERE
msg = 'Google';
< 요건 내꺼
SELECT
COUNT(*) AS Google거래회수
FROM transactions
WHERE
msg = 'Google';
4. 평균거래금액
SELECT
AVG(amount) AS 평균거래금액
FROM transactions;
4. 평균거래금액
SELECT
ROUND(AVG(amount), 2) AS 평균거래금액
FROM transactions;
5. msg를 중복없이 구하기
-DISTINCT 는 함수이다.
SELECT
DISTINCT (msg)
FROM transactions;
6. 입금내역의 합계
SELECT
sum(amount)
FROM
transactions
WHERE
amount >= 0;
반응형
'TECH' 카테고리의 다른 글
TO_CHAR() (0) | 2022.05.24 |
---|---|
EXTRACT() (0) | 2022.05.19 |
🌟 BlackDog캠핑 조명LED감성 조명BD-LYD006 🌟최대 350h사용가능-무료배송 (0) | 2022.05.17 |
Postgres 데이터 필터링 (0) | 2022.05.16 |
Postgres CREATE TABLE (0) | 2022.05.13 |