Välkommen till webForum!
GROUP BY!
SELECT ID, Arr, Serial, Namn
FROM tabell
WHERE x > -1
GROUP BY Arr
Edit: Du vill ta bort dem... Hmm, vänta lite...
5 svar · 833 visningar · startad av colahelge
MySQL 5
[B]ID, Arr, Serial, X, Namn[/B]
1, 41, 212, 1, Erik
2, 41, 212, 1, Erik
3, 41, 212, 1, Erik
4, 34, 212, 1, Peter
5, 23, 232, 1, Olle
6, 13, 121, -1, Lotta
ID - unikt ID för varje event
Arr - Arrangör inte unikt för någon Serial
Serial - Ett ID som inte är unikt för någon Arr
Namn - Namn på eventet
Målet är att hämta alla rader där X inte är -1. Inga konstigheter. Problemet är att det kan finnas dubletter i systemet (vilket är fallet på ID 1-3). Så jag undrar om man kan få till en fråga som tar bort dessa dubletter.
Man vet att det är en dublett på Arr + Serial som alltid är en unik kombo. (Arr = 41 och Serial = 212 finns alltså inte på något annat ställe än för ID 1-3)
Mitt målresultat skulle alltså vara:
1, 41, 212, 1, Erik
4, 34, 212, 1, Peter
5, 23, 232, 1, Olle
Välkommen till webForum!
GROUP BY!
SELECT ID, Arr, Serial, Namn
FROM tabell
WHERE x > -1
GROUP BY Arr
Edit: Du vill ta bort dem... Hmm, vänta lite...
Jag ser två valmöjligheter.
INSERT INTO tabell_temp (ID, Arr, Serial, x, Namn)
SELECT ID, Arr, Serial, x, Namn
FROM tabell
WHERE x > -1
GROUP BY Arr
Sry, uttryckte mig lite klumpigt. Sömnbrist gör en dum i huvvet.
Jag vill alltså inte "fysiskt" ta bort dubletterna, jag vill bara inte ha med dem i mitt urval.
SELECT DISTINCT ....
är det det det du är ute efter?
Något sådant ja, problemet är att det gäller för en specifik kombination av Arr och Serial. Det kan finnas flera event av samma Arr och alla dom ska med och det finns även olika event med samma Serial, Men de poster där Arr och Serial är lika (för de olika posterna, se ID 1-3 i första inlägget) så är det dubletter och bara 1 ska räknas.
Dessa dubletter är ett fel i systemet, eventen har blivit rapporterade flera gånger. Det bästa vore ju givetvis att ta bort alla dubletter bara, men detta kräver en hel del manuellt spårande i systemet (inte bara denna tabell, utan massa transaktioner fram och tillbaka). Och det finns ingen större nytta av det heller, förutom just för att få fram antal event (utan dubletter).
Kanske inte ens är möjligt i SQL men det vore en liten och bra lösning på ett litet problem. Hoppas jag förtydligat lite.
select
min(id),
arr,
serial,
min(x),
min(namn)
from
t
group by
arr,
serial