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

Apakah kedua kueri ini sama - GROUP BY vs. DISTINCT?

Contoh #2 membuat saya menggaruk-garuk kepala untuk sementara waktu - saya berpikir:"Anda tidak bisa DISTINCT satu kolom, apa artinya itu?" - sampai saya menyadari apa yang sedang terjadi.

Bila Anda memiliki

SELECT DISTINCT(t.ItemNumber)

kamu tidak , meskipun muncul, sebenarnya meminta nilai yang berbeda dari t.ItemNumber ! Contoh #2 Anda sebenarnya diurai sama dengan

SELECT DISTINCT
  (t.ItemNumber)
  ,
  (SELECT TOP 1 ItemDescription
   FROM Transactions
   WHERE ItemNumber = t.ItemNumber
   ORDER BY DateCreated DESC) AS ItemDescription
FROM Transactions t

dengan tanda kurung yang benar secara sintaksis tetapi berlebihan di sekitar t.ItemNumber . Untuk hasil-set secara keseluruhan yang DISTINCT berlaku.

Dalam hal ini, karena GROUP BY your Anda kelompok dengan kolom yang sebenarnya bervariasi, Anda mendapatkan hasil yang sama. Saya sebenarnya sedikit terkejut bahwa SQL Server tidak (dalam GROUP BY contoh) bersikeras bahwa kolom subquery disebutkan dalam GROUP BY daftar.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kompatibilitas Layanan Integrasi server Sql 2008-2005

  2. Bagaimana cara membuat installer di VB.NET yang dapat menginstal SQL Server Express Edition?

  3. Apa yang dilakukan transaksi di sekitar satu pernyataan?

  4. Pemikiran tentang SQL Server 2019 Editions

  5. Pernyataan SQL - Bagaimana Meningkatkan kecepatan dengan pengindeksan