sql >> Databáze >  >> RDS >> Sqlserver

DISTINCT pouze pro jeden sloupec

Pokud používáte SQL Server 2005 nebo vyšší, použijte toto:

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

EDIT:Příklad použití klauzule 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


  1. Jaká je maximální délka názvu tabulky v Oracle?

  2. Netherlands Access Developer Day 2019 – 14. září

  3. Jak mohu použít připravené výpisy v CodeIgniter

  4. TSQL PIVOT VÍCE SLOUPCÍ