SORU
16 ŞUBAT 2011, ÇARŞAMBA


FARKLI tek bir Sütun için

Hadi aşağıdaki sorgu var diyelim.

SELECT ID, Email, ProductName, ProductModel FROM Products

Nasıl döndürdüğü değişiklik yok e-Postaları yinelenen miyim?

Birkaç satır aynı e-posta içeren, diğer bir deyişle, sonuçlar bu satırlar yalnızca bir (tercihen sonuncusu) eklemek istiyorum. Diğer sütunlar içinde çiftleri izin verilmelidir.

DISTINCT GROUP BY gibi maddeler tüm satırlar üzerinde çalışmak için görünür. Bu yaklaşım nasıl emin değilim.

CEVAP
16 ŞUBAT 2011, ÇARŞAMBA


Eğer SQL Server 2005 veya üzeri kullanıyorsanız bunu kullanın:

SELECT *
  FROM (
                SELECT  ID, 
                        Email, 
                        ProductName, 
                        ProductModel,
                        ROW_NUMBER() OVER(PARTITION BY Email ORDER BY ID DESC) rn
                    FROM Products
              ) a
WHERE rn = 1

EDİT: Örnek kullanarak bir where:

SELECT *
  FROM (
                SELECT  ID, 
                        Email, 
                        ProductName, 
                        ProductModel,
                        ROW_NUMBER() OVER(PARTITION BY Email ORDER BY ID DESC) rn
                    FROM Products
                   WHERE ProductModel = 2
                     AND ProductName LIKE 'CYBER%'

              ) a
WHERE rn = 1

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jonathan Leack

    Jonathan Lea

    26 ŞUBAT 2007
  • Kamikazeepanda

    Kamikazeepan

    5 ŞUBAT 2006
  • whiteboy7thst

    whiteboy7ths

    1 Temmuz 2009