/ / dodanie +1 dnia do następnej daty na łączeniu w niepełnej sekwencji dat - mysql, sql

dodawanie +1 dnia do następnej daty na złączu w niepełnej sekwencji dat - mysql, sql

Mam tabelę, która przechowuje niekompletne daty sekwencji w ciągu roku:

eg.
Jan 1
Jan 4
Jan 9
Jan 24
Jan 25
Feb 16
Feb 18
Feb 21
Feb 28
Mar 3
.
.
.
Dec 31

Muszę zrobić samo złączenie na stole nakolumny dat. Data musi zostać dołączona w dniu, w którym data b wynosi + 1 dzień w sekwencji. Jeśli daty byłyby zakończone, robiłbym łączenie, takie jak a.date = b.date, ale zamiast a.date = DATE_ADD(b.date,INTERVAL 1 DAY). Ale muszę to być coś takiego a.date = NEXT_DATE_IN_SEQUENCE(b.date), ale oczywiście nie jest to prawdziwa funkcja, ale szukam czegoś takiego.

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz użyć produktu półkartezjańskiego:

SELECT a.date, MIN(b.date)
FROM dates a
INNER JOIN dates b ON b.date > a.date
GROUP BY a.date;

Próbny


1 dla odpowiedzi nr 2

Podejdę do tego za pomocą skorelowanego podzapytania:

select t.*,
(select t2.date
from table t2
where t2.date > t.date
order by t2.date
limit 1
) as next_date
from table t;