webForumDet fria alternativet

Bästa tiden klockslag för klockslag under en dag

Databaser & SQL

3 svar · 354 visningar · startad av Metatron

Medlem sedan dec. 200697 inlägg
Frågan#1

Jag har fått fram prioriteradevärden baserat på olika klockslag under en dag.

Listan ser ut så här.

SELECT id, Starttid, (prio + varde) as Priovärde
FROM Tider
ORDER BY Starttid

ID | Starttid | Priovärde

123 2008-12-15 08:00:00.000 4
125 2008-12-15 08:00:00.000 8
798 2008-12-15 08:00:00.000 5
555 2008-12-15 10:00:00.000 1
332 2008-12-15 10:00:00.000 1
111 2008-12-15 11:00:00.000 5
234 2008-12-15 12:00:00.000 8
789 2008-12-15 12:00:00.000 5

Jag vill få ut detta

ID | Starttid | Priovärde

125 2008-12-15 08:00:00.000 8
555 2008-12-15 10:00:00.000 1
111 2008-12-15 11:00:00.000 5
234 2008-12-15 12:00:00.000 8

Alltså jag vill bara retunera top värdet för varje klockslag. Har provat att köra top 1 för varje klockslag men eftersom det inte går att köra Union all med order by så går det åt skogen.

dvs

SELECT TOP1 Starttid, id, (prio + varde) as Priovärde
FROM Tider
WHERE 08 = datepart(hh, starttid)
ORDER BY (prio + varde) DESC

UNION ALL

SELECT TOP1 Starttid, id, (prio + varde) as Priovärde
FROM Tider
WHERE 09 = datepart(hh, starttid)
ORDER BY (prio + varde) DESC

Alla tips är välkommna.

Medlem sedan feb. 200112 078 inlägg
#2

Jag gissar:

SELECT StartTid, MAX(Prio) as PrioX FROM Tider
GROUP BY StartTid
ORDER BY PrioX DESC
Medlem sedan dec. 200697 inlägg
#3

Det du säger funkar.. men jag nämde förståss inte att varje rad har ett unikt id som jag också vill ha med.

Det går ju inte att använda group by då.

OBS: editerar första inlägget. Och lägger till ID

Medlem sedan dec. 20025 483 inlägg
#4
select t.id
     , t.starttid
     , t.prio
  from tider t
 where t.prio
     = ( select max(prio)
           from tider
          where starttid = t.starttid )
   and t.id
     = ( select max(id)
           from tider
          where starttid = t.starttid
            and prio = t.prio )
269 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)