Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- C++
- mssql 대용량 데이터 insert
- c#
- SQLite
- sql insert
- sql index
- jdbc
- annotation
- 테이블용량조회
- SQL
- select count
- 포인터
- mssql insert
- mssql bulk insert
- 윈도우함수
- MS-SQL
- jtds
- jdbc bulk insert
- solvesql
- lag
- SQL Server
- Java
- 어노테이션
- MSSQL INDEX
- MSSQL
- 자바
- 자바 어노테이션
- mssql 대용량 데이터
- MSSQL 인덱스
Archives
- Today
- Total
Basic Byte Bites
[SolveSQL/Advent of SQL 2024] 스테디셀러 작가 찾기 본문
문제
https://solvesql.com/problems/find-steadyseller-writers/
https://solvesql.com/problems/find-steadyseller-writers/
solvesql.com
이전행의 결과를 가져오는 윈도우함수 LAG()만 알고있었으면 금방 풀었을텐데 이 함수를 몰라서 좀 헤맸다.
1. 작가, 달성연도, LAG (달성연도) as prevYear 로 정렬
2. 달성연도 - prevYear이 1인값만 SUM하면 간단하게 끝
WITH CTE as (
SELECT
author,
year,
LAG(Year) OVER ( PARTITION BY Author ORDER BY Year) as prevYear
FROM books
WHERE genre = 'Fiction'
), result as (
SELECT
author,
MAX(Year) as year,
SUM ( CASE WHEN Year - prevYear = 1 THEN 1 ELSE 0 END ) + 1 as depth
FROM CTE
GROUP BY Author
)
SELECT
author,
year,
depth
FROM result
WHERE depth >= 5
'DataBase' 카테고리의 다른 글
[SolveSQL/Advent of SQL 2024] 세 명이 서로 친구인 관계 찾기 (0) | 2024.12.26 |
---|