SQL/SQLite 6

[SQLite][문제풀이] 레스토랑 요일 별 구매 금액 Top3 영수증

목차  🫡 Overview체감 난이도: ★★★☆☆소요시간: 문제 레벨: lv4풀이 상태:  답안참고추후: 다시 풀어보기 문제 링크https://solvesql.com/problems/top-3-bill/ https://solvesql.com/problems/top-3-bill/ solvesql.com  나의 코드SELECT day, time, sex, total_billFROM tipsWHERE (day, total_bill) IN ( SELECT day, total_bill FROM tips t WHERE ( SELECT COUNT(*) FROM tips t2 WHERE t2.day = t.day AND t2.total_bill >= ..

SQL/SQLite 2024.11.11

[SQLite] JOIN

목차학습 목표SQLite의 조인의 종류를 학습한다.  JOIN? 서로 다른 테이블(들)을 결합하는 방식이며, SQLite에서는 총 5가지 조인이 있다.- 내부 조인, 외부 조인, 교차 조인, 자연 조인, 셀프 조인- cf. OUTER JOIN 중 RIGHT OUTER 조인과 FULL OUTER 조인은 직접 지원하지 않는다.    내부 조인(Inner Join): 두 테이블에 공통으로 존재하는 데이터 행들 선택 -> 새로운 테이블위의 그림에서 왼쪽 테이블의 부서 ID와 오른쪽 테이블의 ID를 기준으로 내부 조인한다고 하자. 결과 테이블에서는 공통으로 가지고 있는 부서 ID인 1,2,3인 행들만 남은 것을 볼 수 있다. (왼쪽 테이블의 부서 ID가 4인 행은 제외가 되었다.) 정의 형식SELECT 조회하고 ..

SQL/SQLite 2024.10.04

[SQLite] CASE IF

IF ELSE 절처럼 조건에 따라서 조회된 값을 분기하고 싶을 때 사용한다. SELECT 문 안에 쓴다!SQLite는 이외의 조건문은 없는 것 같다.  형식은 다음과 같다. SELECT 컬럼명1,                CASE                         WHEN 컬럼명2에_대한_조건 THEN 배정할_값,                        WHEN 컬럼명3에_대한_조건 THEN 배정할_값, ...                         ELSE 값              END AS 새로운컬럼명FROM 테이블 명  예시) 문제: https://solvesql.com/problems/estimated-delivery-date/ /** 2017년 1달 동안 배송 예측 정확했는지..

SQL/SQLite 2024.10.03

[SQLite] LEAD OVER 구문

예를 들어, 데이터에서 저장된 날짜 중에서 오늘 날짜 바로 다음으로 저장된 날짜의 값을 비교해야할 때가 있다. 이럴 때 LEAD 함수를 사용한다.  LEADLEAD 함수는 현재 행의 다음 값을 가져올 수 있는 윈도우 함수이다.  LEAD(다음값을_가져오고_싶은_컬럼) OVER (ORDER BY 값을_정렬하고_싶은_컬럼명)  LEAD temperature OVER(ORDER BY date) AS tomorrow_temp  예를 들어, 테이블에 date라는 날짜 컬럼과 temperature온도 컬럼이 있을 때, 내일의 온도를 알고 싶을 때는 다음과 같이 쿼리를 짠다.  LEAD temperature OVER(ORDER BY date) AS tomorrow_temp   전체 구문으로 살펴보면, LEAD 구문에..

SQL/SQLite 2024.10.03

[SQLite] with 구문

여러 절차를 거쳐야 하는 SQL 쿼리가 있을 수 있다. WITH 구문은 중간 결과를 테이블로 저장할 수 있게 한다.  형식WITH 중간테이블명 AS (       SELECT 컬럼1, 컬럼2, ..        FROM 테이블)SELECT 컬럼들FROM 중간테이블  * 주의점은 WITH 구문만 써놓으면 오류가 난다. 최종 결과를 위한 중간 테이블이기 때문에, 꼭 WITH 구문 뒤에 SELECT 문을 붙여줘야 한다.    예시 코드 문제: 다음날의 미세먼지 농도가 오늘 보다 짙은 날만 구하기https://solvesql.com/problems/bad-finedust-measure/WITH table_a AS( SELECT measured_at AS today, LEAD(measured_at..

SQL/SQLite 2024.10.03