Merhabalar,
Araba marka ve modellerini tuttuğumuz bir tablo olduğunu varsayalım. Birde fiyat bilgimiz olsun. Yapmak istediğimiz her markanın en pahalı 2 modelini getirmek. Diğerlerini istemiyoruz. Aşağıdaki kodlar işinize yarayacaktır.
-- Table ı create edelim DECLARE @Tablom table ( KayitID int IDENTITY, Marka varchar(50), Model varchar(50), Fiyat decimal(10,2) ) -- Kayıtları ekleyelim INSERT INTO @Tablom VALUES ( 'Mercedes', 'SLK', 220000 ) INSERT INTO @Tablom VALUES ( 'Mercedes', 'E200', 120000 ) INSERT INTO @Tablom VALUES ( 'Mercedes', 'S500', 320000 ) INSERT INTO @Tablom VALUES ( 'Mercedes', 'C200', 100000 ) INSERT INTO @Tablom VALUES ( 'BMW', '7.50', 440000 ) INSERT INTO @Tablom VALUES ( 'BMW', '3.25', 110000 ) INSERT INTO @Tablom VALUES ( 'BMW', '3.20', 80000 ) INSERT INTO @Tablom VALUES ( 'BMW', '5.25', 240000 ) INSERT INTO @Tablom VALUES ( 'Opel', 'Corsa', 60000 ) INSERT INTO @Tablom VALUES ( 'Opel', 'Vectra', 80000 ) -- Sorgu cümlemiz SELECT KayitID, Marka, Model, Fiyat FROM (SELECT ROW_NUMBER() OVER ( PARTITION BY Marka ORDER BY Fiyat DESC ) AS 'KayitSirasi', KayitID, Marka, Model, Fiyat FROM @Tablom ) t WHERE KayitSirasi <= 2