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

  • Facebook Developers

    Facebook Dev

    24 ŞUBAT 2009
  • katherine gomez

    katherine go

    1 Aralık 2011
  • segtlim

    segtlim

    21 EKİM 2008