SQL- 601. 체육관 사람 유동량
X시는 새로운 체육관을 건설했는데 일일 유동량 정보는 이 세 열의 정보에 기록되었다. 그것이 바로 번호(id), 날짜(date), 유동량(people)이다.
조회 문구를 작성하여 러시아워 시간대를 찾아내고 3일 이상 연속해야 하며 매일 인원 유동량이 100보다 적지 않다.
예를 들어, 테이블 stadium:
+------+------------+-----------+
| id | date | people |
+------+------------+-----------+
| 1 | 2017-01-01 | 10 |
| 2 | 2017-01-02 | 109 |
| 3 | 2017-01-03 | 150 |
| 4 | 2017-01-04 | 99 |
| 5 | 2017-01-05 | 145 |
| 6 | 2017-01-06 | 1455 |
| 7 | 2017-01-07 | 199 |
| 8 | 2017-01-08 | 188 |
+------+------------+-----------+
위 예제 데이터의 출력은 다음과 같습니다.
+------+------------+-----------+
| id | date | people |
+------+------------+-----------+
| 5 | 2017-01-05 | 145 |
| 6 | 2017-01-06 | 1455 |
| 7 | 2017-01-07 | 199 |
| 8 | 2017-01-08 | 188 |
+------+------------+-----------+
Note: 매일 한 줄만 기록되며 날짜는 id가 증가함에 따라 증가합니다.
SQL Server Edition:
DECLARE @sid INT;
DECLARE @sdate DATE;
DECLARE @speople INT;
DECLARE @startdate DATE;
DECLARE @nextdate Date;
DECLARE @thisN INT =0;
DECLARE my_coursor CURSOR FOR SELECT id,date,people FROM stadium WHERE people >=100
OPEN my_coursor
FETCH NEXT FROM my_coursor INTO @sid ,@sdate,@speople;
SET @startDate=@sdate;
SET @nextDate=@sdate;
WHILE @@FETCH_STATUS=0
BEGIN
IF(@sdate = DATEADD(DAY,1,@nextDate))
BEGIN
SET @nextDate=@sdate;
SET @thisN=@thisN+1;
END
ELSE
BEGIN
SET @startDate=@sdate;
SET @nextDate=@sdate;
SET @thisN=0;
END
FETCH NEXT FROM my_coursor INTO @sid,@sdate,@speople;
END
CLOSE my_coursor;
DEALLOCATE my_coursor;
IF(@thisN>=3)
BEGIN
SELECT * FROM dbo.stadium WHERE date>=@startDate AND date <=@nextDate
END
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.