sql >> Database teknologi >  >> RDS >> Sqlserver

Registrer fortløbende datointervaller ved hjælp af SQL

Ingen joinforbindelser eller rekursive CTE'er er nødvendige. Standarden mellemrum-og-ø-løsningen er at gruppere efter (værdi minus rækkenummer), da det er invariant inden for en fortløbende sekvens. Start- og slutdatoerne er kun MIN() og MAX() for gruppen.

WITH t AS (
  SELECT InfoDate d,ROW_NUMBER() OVER(ORDER BY InfoDate) i
  FROM @d
  GROUP BY InfoDate
)
SELECT MIN(d),MAX(d)
FROM t
GROUP BY DATEDIFF(day,i,d)


  1. fejl ved indsættelse af android.database.sqlite.sqliteconstraintexception fejlkode 19 begrænsning mislykkedes

  2. Oprettelse af en app til Django-filmanbefaling ved hjælp af Jaccard-indeks

  3. En introduktion til tidsseriedatabaser

  4. Primære nøgler med Apache Spark