Av en slumpartad händelse kom jag igår i kontakt med sql-kommandot distinct, som jag förstår används för att filtrera dubblettposter. Hej! Men i en riktigt normaliserad databas behövs den sällan. Att använda den som ovanstående exempel är något som man dock måste om man inte normaliserat på rätt sätt och bör inte användas i frekventa frågor. Vad är en "rätt" normaliserad databas(Jag kan normaliseringsreglerna)?Det är, och ska vara, applikationens behov som avgör hur normaliserad en databas ska vara. Frågan skall väl vara: DISTINCT är väl ändå hyfsat redundant. Betänk att: Om jag kommer ihåg rätt från Oraclevärlden så är det så här:När behövs select distinct?
Är det jag som är dum nu, eller när behöver man använda det? Har kodat i flera år och aldrig stött på att dubbletter uppstått i ett recordset. Tyder inte dubblettposter snarare på att man då har en databas med redundans? Eller behövs kommandot distinct och jag helt enkelt inte stött på scenariot där det är bra? :-)Sv: När behövs select distinct?
Jag använder distinct ganska ofta...
Tänk dig att du har en tabell där personnummer och försäkringsnummer bildar primärnyckel. I den kan samma personnummer förekomma mer än en gång. Vill du ur den tabellen hitta alla unika personer så är distinct bra, eller hur :)
Det var bara ett exempel, jag tycker att distinct är mycket användbart.
mvh
uffeSv: När behövs select distinct?
Rätt normaliserat hade då funnits även en tabell för de personer som har en försäkring.
Men jag förstår att detta bara var ett exempel för att svara när man kan använda det.
Läs gärna vidare om de olika normaliseringsreglerna före användning av SELECT DISTINCT.Sv: När behövs select distinct?
Sv: När behövs select distinct?
Vad är en rätt databas
samt :
Vad är en normaliserad databas.
Dessa två går sällan hand i hand...Sv: När behövs select distinct?
SELECT DISTINCT fält FROM tabell
och
SELECT fält FROM tabell GROUP BY fält
bör ge samma resultat (och samma query plan förhoppningsvis).Sv: När behövs select distinct?
DISTINCT är alltid GROUP BY och ORDER BY medans en GROUP BY
klarar sig utan ORDER BY ibland.