Hej, Prestanda får du med rätt index.Ta bort dubbletter
Jag försöker skapa en SELECT-sats som returnerar en tabell utan dubbletter. Vad som är en dubblett skall kunna sättas i frågan. För att någon skall förstå vad jag menar så följer här ett exempel:
Jag har tabellen:
Col1 Col2 Col3
1 1 data value one
2 1 data value Two
3 2 data value Three
4 2 data value Four
5 3 data value Five
Jag vill att man skall kunna ange att man vill ha alla unika Col2 med den första förekommande Col1 och Col3. Dvs:
Col1 Col2 Col3
1 1 data value one
3 2 data value Three
5 3 data value Five
Denna frågan kommer att köras på tabeller som kommer att ha flera tio/hundratals tusen rader så det är bra om det är någorlunda hastighet på den.
Tack på förhand!Sv: Ta bort dubbletter
Prova den här (SQL Server 2005 och framåt):
<code>
;WITH get_ordered_dataset AS
(
SELECT
col1,
col2,
col3,
ROW_NUMBER() OVER(PARTITION BY col2 ORDER BY col2) AS rn
FROM [din tabell]
)
SELECT
col1,
col2,
col3
FROM get_ordered_dataset
WHERE (rn = 1);
</code>