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

  • Dellbear816

    Dellbear816

    4 Mart 2008
  • Mark Halberstadt

    Mark Halbers

    19 ŞUBAT 2010
  • thenewboston

    thenewboston

    4 ŞUBAT 2008