Prendete l'ultima data entro 1 anno dalla data di min

voti
0

Sto cercando di creare una nuova colonna che restituisce l'ultima data entro 1 anno della prima data.

Esempio:

Ho le seguenti date.

5/6/2011
8/9/2011
3/5/2012
6/8/2012

Quindi la query deve scegliere 3/5/2012 come l'ultima data in questo scenario.

È pubblicato 10/10/2019 alle 00:55
fonte dall'utente
In altre lingue...                            


3 risposte

voti
0

Un metodo utilizza funzioni finestra:

select max(dt)
from (select t.*, min(dt) over () as min_dt
      from t
     ) t
where dt < dateadd(year, 1, min_dt);

Credo di preferire una subquery correlata, però:

select max(dt)
from t
where dt < (select dateadd(year, 1, min(dt)) from t);
Risposto il 10/10/2019 a 04:42
fonte dall'utente

voti
0

Si supponga il tuo nome di colonna è dte il vostro nome della tabella èTbl

SELECT MAX(dt)
FROM Tbl
WHERE dt < (SELECT MIN(dt) + 365 FROM Tbl)
Risposto il 10/10/2019 a 01:30
fonte dall'utente

voti
0

Si può tranquillamente tradurre la vostra spec inglese in uno SQL per questo:

 SELECT max(d) 
 FROM  t
 WHERE d < (SELECT DATEADD(year, 1, MIN(d)) FROM t)
Risposto il 10/10/2019 a 01:25
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more