TECH

통계 실습을 위한 SQL

AKA.DM 2022. 5. 17. 08:15
반응형

우선  통계 연습을 위해 

새로운 테이블을 생성했다.

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