Hämta största intervallet mellan datum

Databaser & SQL

4 svar · 204 visningar · startad av Rocket

Medlem sedan feb. 2000372 inlägg
Trådstart#1

Jag har en databas där jag sparar information om olika dagar. Nu vill jag gå igenom alla dagarna som finns representerade och även dem som finns mellan dessa, t.ex.

2003-01-05
2003-01-07
2003-01-10
2003-01-25

Så vill jag alltså skriva ut en rad för varje datum mellan 5 och 25 januari 2003.

Jag tänkte att det är bäst att först kolla hur många dagar det skiljer mellan det nyaste och det äldsta datumet, alltså det största intervallet mellan två datum. Hur gör man detta på smidigaste sätt, gärna allt i samma SQL-sats.

Jo, det är ju också bra om man kan få intervallet i dagar.

Medlem sedan dec. 200012 464 inlägg
#2

Vad har du för nytta av det? (Så vitt jag förstår så går det inte att få till en sådan fråga i Mysql.)

Medlem sedan feb. 2000372 inlägg
#3

Ok, det kanske inte går. Då frågar jag om en annan sak :)

Hur gör jag för att se vilken datum det finns flest av?
Av nedanstående datum vill jag alltså få ut 2003.01.29, eller ännu bättre antalet av den som det finns flest av.

2003.01.11
2003.01.15
2003.01.20
2003.01.29
2003.01.29

Det är ju inte svårt att göra det om man först hämta alla unika datum och sedan räknar hur många det finns av varje och hela tiden sparar det största resultatet. Går det att göra smidigare med färre frågor.

Medlem sedan dec. 200012 464 inlägg
#4

Om tabellen heter t och kolumnen med datum i heter dates så får du både och så här:

select count(*) as numbreOfDates,dates
from t
group by dates
order by numberOfdates desc
limit 1
Medlem sedan feb. 2000372 inlägg
#5

Danke.

254 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)