webForumDet fria alternativet

Gruppera rader som i sin tur är grupperade?

Databaser & SQL

3 svar · 470 visningar · startad av evilaid

Medlem sedan apr. 2009433 inlägg
Frågan#1

Hej..

Klurade lite igår på en SQl fråga utan att komma på lösningen

Säg att jag har en tabell enligt följande

id         bredd         order_id
1          100             1
2          200             1
3          100             2
4          200             2

om jag nu kör en group på kolumnerna bredd och order_id så får jag ju fyra rader, jag skulle vilja få ut en rad där enligt:

Antal      bredd       bredd2
2            100           200

Man kan väll säga att jag vill slå ihop två rader med samma order_id så man får två bredder (bredd, bredd2) och utifrån det gruppera dessa..

Börjar fundera på om det är möjligt ?

Medlem sedan mars 20034 471 inlägg
#2

Vet du att du alltid har exakt två rader med samma orderID med olika bredder, eller kan det ibland vara en rad eller 3 eller fler olika bredder?

Medlem sedan apr. 2009433 inlägg
#3

Hej

Det stämmer att det alltid är två rader, en för "liggande profiler" och en för "stående profiler", så först måste jag hitta varje "två" rader och lägga ihop dem, sen gruppera allt efter det, som sagt: omd et går?

Medlem sedan mars 20034 471 inlägg
#4

Låt säga att tabellen heter Profil. Om jag har förstått rätt borde du kunna skriva:

SELECT
   COUNT(*),
   S.bredd [bredd],
   L.bredd [bredd2]
FROM
   Profil L -- Liggande
   INNER JOIN Profil S ON -- Stående
      L.order_id = S.order_id AND
      L.bredd > S.bredd
GROUP BY
   L.bredd [bredd],
   S.bredd [bredd2]
263 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)