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

  • Philip DeFranco

    Philip DeFra

    16 EYLÜL 2006
  • PlugResearch

    PlugResearch

    22 Mart 2006
  • Theodore Leaf

    Theodore Lea

    29 AĞUSTOS 2006