본문 바로가기

반응형

Skills/SQL

(16)
[Presto SQL] 가격 범위 별 Item 개수 확인 가격 범위별로 아이템 개수를 확인하는 상황이 있습니다. 범위를 5 단위로 설정하는 경우를 예로 들어 두 가지 방법을 설명하겠습니다. case when을 사용한 첫 번째 방법은 다음과 같습니다. SELECT CASE WHEN ItemPrice >= 0 AND ItemPrice = 5 AND ItemPrice = 10 AND ItemPrice = 15 AND ItemPrice = 20 AND ItemPrice = 2..
최소 구매 금액 미 충족 후, 구매 전환한 사용자 수 구하기 유저 로그 테이블에서 특정 행동 이후 구매 전환한 사용자 수를 구하는 방법을 살펴보겠습니다. 샘플 데이터 생성에 필요한 쿼리와 샘플 데이터는 아래와 같습니다. CREATE TABLE user_logs ( id SERIAL PRIMARY KEY, user_id INT NOT NULL, product_id INT NOT NULL, action VARCHAR(50) NOT NULL, order_amount NUMERIC(10, 2), created_at TIMESTAMP NOT NULL ); INSERT INTO user_logs (user_id, product_id, order_amount, action, created_at) VALUES (1, 100, 8000, 'failed_minimum_order',..
SQL order by 특정 조건으로 정렬하기 쿼리를 작성하다 보면 특정 컬럼별 내림차순 오름차순이 아닌 특정 조건으로 정렬해야 하는 경우가 있습니다. SQL을 사용 하여 어떻게 특정 조건으로 정렬하는지 살펴보겠습니다. 아래 쿼리를 사용하여 movies 예시 테이블을 만들었습니다. CREATE TABLE movies ( id INT PRIMARY KEY, title VARCHAR(50), director VARCHAR(50), release_date DATE, rating FLOAT, duration INT ); INSERT INTO movies (id, title, director, release_date, rating, duration) VALUES (1234, '아바타', '제임스 카메론', '2009-12-17', 8.5, 162), (567..
SQL LIKE 대신 정규식 사용한 검색 방법: sql multiple like 특정 키워드가 포함된 상품의 주문 수량을 구하는 경우가 많습니다. 키워드가 적은 경우에는 like or을 사용하거나 정규식을 사용합니다. --like or 사용하는 경우 select item_id, item_name, item_amount from items where item_name like '핸드폰 케이스' or item_name like '에어팟 케이스' or item_name like '원피스' ; --정규식 사용하는 경우(postgresql) select item_id, item_name, item_amount from items where item_name ~* '핸드폰 케이스|에어팟 케이스|원피스' 하지만 키워드가 많으면 where절에서 키워드를 늘리기가 어렵습니다. 이런 경우에는 테이블 ..
SQL을 활용한 임시 테이블 만들기 SQL에서 자주 사용되는 CTE(Common Table Expression)를 활용한 간단한 쿼리 작성 방법에 대해 알아보겠습니다. 이를 통해 데이터를 DB 테이블에 직접 ingest 하지 않고 테이블을 사용할 수 있습니다. 데이터베이스에 데이터를 저장하지 않고 메모리에서 처리하기 때문에, 빠르게 결과를 얻을 수 있습니다. 첫 번째 예제는 컬럼이 하나인 임시 테이블을 만드는 경우입니다. WITH brand_tbl(keyword) AS ( VALUES 'Nike', 'Adidas', 'Puma', 'Under Armour', 'New Balance' ) select keyword from brand_tbl 위 쿼리는 'brand_tbl'이라는 임시 테이블을 생성하고, 여기에 스포츠 브랜드 이름을 추가했습니..
SQL에서 Roll up 함수 활용하기: 계층적 데이터 집계 방법 Roll up 함수는 SQL에서 집계 함수를 사용할 때, 그룹핑을 계층적으로 구조화하여 결과를 반환하는 함수입니다. 이 함수는 주로 계층적인 데이터를 집계할 때 사용되며, 여러 레벨에서 총합, 부분합 등을 계산할 때 유용합니다. 해당 함수를 사용한 쿼리를 예시로 들어보겠습니다. store_item 테이블을 생성하고 데이터를 삽입하였습니다. CREATE TABLE store_item ( store_name VARCHAR(50), store_item_id VARCHAR(50) ); INSERT INTO store_item (store_name, store_item_id) VALUES ('Store A', 'Item 1'); INSERT INTO store_item (store_name, store_item_..
제품 주문 데이터를 활용한 커버리지 비율 분석 이번 글에서는 SQL을 사용하여 제품 주문 데이터를 활용하여 커버리지 비율을 분석하는 방법에 대해 알아보겠습니다. 샘플 데이터를 아래와 같이 생성했습니다. 예시 데이터입니다. 이 쿼리는 orders 테이블을 생성하고, 해당 테이블에 샘플 데이터를 삽입하는 쿼리입니다. orders 테이블은 제품 주문 데이터를 저장하는 테이블입니다. 제품 ID(product_id), 제품 이름(product_name), 제품 주문량(product_orders)을 컬럼으로 가지며, 제품 ID를 기본 키로 설정합니다. Dbeaver를 통해 table 추가했습니다. -- orders 테이블 생성 CREATE TABLE orders ( product_id INT PRIMARY KEY, product_name VARCHAR(50),..
SQL을 활용한 구매 전환율 계산 구매 전환율이란? 방문자 수 대비 실제 구매한 고객의 비율을 의미합니다. 주로 구매자가 특정 행동을 하고 어느 정도의 비율이 구매까지 이어졌는지 확인합니다. 전환율이 높을수록 비즈니스 성과가 좋다는 것을 나타냅니다. 필요한 데이터 수집하기 구매 전환율을 계산하기 위해서는 방문자 수와 구매자 수가 필요합니다. 구매자 수는 구매 이력을 수집하고, 방문자 수는 로그 데이터를 활용해 추적할 수 있습니다. Dbeaver를 사용해서 search_logs, order_logs 샘플 데이터를 생성했습니다. 각각 데이터는 임의로 만들었습니다. User가 search 버튼을 확인할 수 있는 search_logs 테이블과, User가 주문을 확인했는지 알 수 있는 order_logs 테이블입니다. --search_logs ..

반응형