Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

DISTINCT tylko dla jednej kolumny

Jeśli używasz SQL Server 2005 lub nowszego, użyj tego:

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

EDYCJA:Przykład użycia klauzuli 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można znaleźć pliku microsoft.sqlserver.batchparser.dll

  2. Wybór N wierszy w SQL Server

  3. Eksplorowanie interfejsu graficznego magazynu zapytań SQL Server 2016

  4. Oszacuj oszczędności związane z kompresją danych w SQL Server

  5. Data i godzina rzutowania SQL