Antalet kunder i varje stad? Vad sägs om:
SELECT
Stad, COUNT(*)
FROM
Kunder k
WHERE
NOT EXISTS(SELECT * FROM Kunder WHERE Personnummer = k.Personnummer AND Ar > k.Ar)
GROUP BY
Stad
1 svar · 919 visningar · startad av Saldina
Hej,
Jag är ganska mycket av en nybörjare vad gäller SQL så jag hoppas ni kan ha överseende med att detta antagligen är ganska basalt. Men jag har fastnat lite i tankar kring hur jag ska lösa dubbletthantering på enklast sätt och det vore skönt att slippa fler nätter av grubblerier :D
Jag använder mig av MS SQL Server 2005 och har ett exempel här som jag tror fångar vad jag är ute efter. Jag beskriver det i ord istället för att klistra in vad jag redan försökt med, då det nog bara blir mer förvirrat så!
Låt oss säga att ett företag har en tabell över sina kunder. Tabellen har kolumnerna Kundid, Personnr, Stad samt Ar. Inga dubbletter finns vad gäller kundid, men ett personnummer kan förekomma flera gånger, en individ kan alltså ha flera olika kundid, och den individen kan ha bott i olika städer under olika år.
Nu vill de dock skapa en #-tabell med enbart Personnr och Stad. Utifrån den vill man sedan kunna räkna ut hur många aktuella kunder man har i respektive stad, och därför ska i #-tabellen inte ett personnummer förekomma mer än en gång. Och det sätt man vill avgöra vilken Stad som ska gälla är genom att ta det högsta värdet på ”Ar”.
Hur skriver man detta i SQL på enklast sätt så man får fram #-tabellen som man sedan kan använda för att räkna ut antalet unika kunder per stad?
Tack på förhand!
Antalet kunder i varje stad? Vad sägs om:
SELECT
Stad, COUNT(*)
FROM
Kunder k
WHERE
NOT EXISTS(SELECT * FROM Kunder WHERE Personnummer = k.Personnummer AND Ar > k.Ar)
GROUP BY
Stad