반응형

분류 전체보기 339

[PostgreSQL] Window Function(윈도우 함수), 순위함수

윈도우 함수란- 윈도우 함수는 테이블에서 행집합을 대상으로 `함수입니다.- 행집합은 한 행에 대해서 어떠한 방식으로 관계된 행들이며, 집합 단위로 계산한다는 점에서 집계 함수와 비슷합니다.- 하지만 집계 함수는 해당 되는 행집합에 대해서 하나의 로우로 그 결과물을 보여주지만, 윈도우 함수는 각 행마다 처리결과를 출력합니다. 따라서 윈도우 함수는 집계결과뿐만 아니라 각행의 특징도 볼 수 있습니다. 윈도우 함수의 구조- 집약함수로 윈도함수를 사용하려면 집약함수 뒤에 OVER를 붙이고 윈도함수를 지정합니다. - 만약 OVER구문에 매개변수를 지정하지 않으면 테이블 전체에 집약함수가 적용됩니다.- 매개변수에 PARTITION BY (컬럼이름) 을 지정하면 해당 컬럼 값을 기반으로 그룹화하고 집약함수가 적용됩니다..

SQL & DB/PostgreSQL 2021.01.07

[PostgreSQL] 집약함수와 Grouping(COUNT, SUM, AVG, MAX, MIN, GROUP BY)

DATASET QUERY DROP TABLE IF EXISTS review; CREATE TABLE review ( user_id varchar(255) , product_id varchar(255) , score numeric ); INSERT INTO review VALUES ('U001', 'A001', 4.0) , ('U001', 'A002', 5.0) , ('U001', 'A003', 5.0) , ('U002', 'A001', 3.0) , ('U002', 'A002', 3.0) , ('U002', 'A003', 4.0) , ('U003', 'A001', 5.0) , ('U003', 'A002', 4.0) , ('U003', 'A003', 4.0) ; 중복제거함수(DISTINCT) DISTINCT..

SQL & DB/PostgreSQL 2021.01.07

[PostgreSQL] 계산 관련 함수(ABS, POWER , SQRT, POINT)

DATASET QUERY DROP TABLE IF EXISTS location_1d; CREATE TABLE location_1d ( x1 integer , x2 integer ); INSERT INTO location_1d VALUES ( 5 , 10) , (10 , 5) , (-2 , 4) , ( 3 , 3) , ( 0 , 1) ; 절대값, 제곱근, 루트 계산(ABS, POWER, SQRT) ABS는 절대값을 계산하는 함수이며, POWER는 제곱함수, SQRT는 제곱근을 구하는 함수이다. select abs(x1 - x2) ,power(x1 - x2, 2) as Squared ,sqrt(power(x1 - x2, 2)) as Squared_root from location_1d; DATASET2 QU..

SQL & DB/PostgreSQL 2021.01.07

[PostgreSQL] 값 비교(CASE, SIGN, GREATEST, LEAST), 평균값 구하기

DATASET 을 만들기 위한 코드입니다. DROP TABLE IF EXISTS quarterly_sales; CREATE TABLE quarterly_sales ( year integer , q1 integer , q2 integer , q3 integer , q4 integer ); INSERT INTO quarterly_sales VALUES (2015, 82000, 83000, 78000, 83000) , (2016, 85000, 85000, 80000, 81000) , (2017, 92000, 81000, 80000, 90000 ) , (2018, 80000, 83000, 90000, 91000 ) , (2019, 98000, 83000, NULL , NULL ) ; 조건문 비교(CASE) CA..

SQL & DB/PostgreSQL 2021.01.07

[PostgreSQL] 날짜 다루기(CURRENT_DATE, CURRENT_TIMESTAMP, CAST, EXTRACT)

오늘 날짜 추출하기(CURRENT_DATE, CURRENT_TIMESTAMP)PostgreSQL은 현재 시간을 추출할때 자동으로 해당 타임존이 적용되서 리턴됩니다.CURRENT_DATE로 날짜를, CURRENT_TIMESTAMP로 타임스템프를 추출할 수 있습니다.select current_date as today, current_timestamp as timestamp; 지정된 날짜/시간 추출하기 (CAST)CAST함수는 타입을 변환시키는 함수입니다. 문자를 숫자형식으로 변환하거나, 날짜형식으로 변환하거나, 참거짓으로 변환하는 등 다양하게 활용할 수 있습니다.CAST함수의 문법은 다음과 같습니다.CAST('변환대상' AS TYPE)CAST함수를 활용해서 문자열을 날짜형식으로 변환해보겠습니다.select ..

SQL & DB/PostgreSQL 2021.01.06

[PostgreSQL] 문자열 다루기(추출/ 분해 / 합치기) (substring, split_part, concat)

이번 포스팅은 데이터에서 특정 요소들만 추출하는 작업을 해보겠습니다. 데이터셋입니다. DROP TABLE IF EXISTS access_log ; CREATE TABLE access_log ( stamp varchar(255) , referrer text , url text ); INSERT INTO access_log VALUES ('2020-05-21 12:02:00', 'http://www.naver.com/path1/index.php?k1=v1&k2=v2#Ref1', 'http://www.kakao.com/video/detail?id=001') , ('2020-05-21 12:02:01', 'http://www.daum.net/path1/index.php?k1=v1&k2=v2#Ref1', 'htt..

SQL & DB/PostgreSQL 2021.01.06

[PostgreSQL] Create / Insert / Select

이번 포스트에서는 테이블을 Create하고 자료를 Insert하고 이를 Select해서 보는 것을 해보겠습니다. 먼저 테이블 구조를 만들겠습니다. Create Table를 활용하여 만듭니다. 그리고 각 Column마다 데이터 타입을 지정해줍니다. varchar(255)는 문자열이며(255글자까지 지정 가능), integer는 숫자입니다. CREATE TABLE mst_users( user_id varchar(255) , register_date varchar(255) , register_device integer ); 이후 INSERT INTO 구문을 활용하여 만들어진 테이블에 데이터를 넣어줍니다. INSERT INTO mst_users VALUES ('U01', '2020-08-26', 1) , ('U..

SQL & DB/PostgreSQL 2021.01.06

[SQLD] SQLD 38회 시험결과

SQLD 38회 시험결과SQLD 38회 시험결과는 다음과 같습니다.SQLD 준비과정해당 시험을 준비하는 것은 어렵지 않습니다..먼저 진흥원에서 나온 책을 구입해줍니다.https://coupa.ng/bQ4yDe SQL 자격검정 실전문제:국가공인 SQL전문가 국가공인 SQL개발자COUPANGwww.coupang.com 도 좋다고 합니다.https://link.coupang.com/a/1oAzR 이기적 SQL 개발자 이론서 + 기출문제COUPANGwww.coupang.com는 문제들 밖에 없어서 먼저 개념을 공부해야하는데 개념공부에 굳이 책을 살필요는 없습니다.왜냐하면 인터넷에 친절하게 내용을 정리해주신 분들이 많기 때문입니다.아래 블로그는 SQLD 정리를 아주 잘 해 놓았으니 공부하기에 부족함이 없을 것입..

반응형