Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

DISTINCT hanya untuk satu kolom

Jika Anda menggunakan SQL Server 2005 atau lebih tinggi gunakan ini:

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:Contoh menggunakan klausa 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. Gabungkan interval tanggal yang tumpang tindih

  2. Cara Memilih Sejumlah Karakter dari Kiri atau Kanan String di SQL Server

  3. Tidak dapat mengecilkan basis data 'hanya baca' | Kecilkan Log Transaksi Saat Menggunakan Grup Ketersediaan AlwaysOn

  4. Kapan kita harus menggunakan NVARCHAR/NCHAR daripada VARCHAR/CHAR di SQL Server?

  5. T-SQL mendapatkan jumlah hari kerja antara 2 tanggal