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

T-SQL:Memilih Kolom Berdasarkan MAX (Kolom Lainnya)

Menggunakan self join:

Ini akan mengembalikan semua nilai dengan nilai subkunci yang cocok, jika ada kelipatan.

SELECT a.value
  FROM TABLE a
  JOIN (SELECT MAX(t.subkey) AS max_subkey
          FROM TABLE t
         WHERE t.key = 1) b ON b.max_subkey = a.subkey
 WHERE a.key = 1

Menggunakan RANK &CTE (SQL Server 2005+):

Ini akan mengembalikan semua nilai dengan nilai subkunci yang cocok, jika ada kelipatan.

WITH summary AS (
  SELECT t.*,
         RANK() OVER(ORDER BY t.subkey DESC) AS rank
    FROM TABLE t
   WHERE t.key = 1)
SELECT s.value
  FROM summary s
 WHERE s.rank = 1

Menggunakan ROW_NUMBER &CTE (SQL Server 2005+):

Ini akan mengembalikan satu baris, bahkan jika ada lebih dari satu dengan nilai subkunci yang sama...

WITH summary AS (
  SELECT t.*,
         ROW_NUMBER() OVER(ORDER BY t.subkey DESC) AS rank
    FROM TABLE t
   WHERE t.key = 1)
SELECT s.value
  FROM summary s
 WHERE s.rank = 1

Menggunakan TOP:

Ini akan mengembalikan satu baris, bahkan jika ada lebih dari satu dengan nilai subkunci yang sama...

  SELECT TOP 1
         t.value
    FROM TABLE t
   WHERE t.key = 1
ORDER BY t.subkey DESC


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara membuat RAND() Deterministik di SQL Server

  2. Cara Menonaktifkan Batasan Kunci Asing di SQL Server (Contoh T-SQL)

  3. Konfigurasi Cakupan Database SQL Server dan Koreksi Paket Otomatis

  4. SQL Server 2017 Langkah demi Langkah Instalasi -2

  5. 3 Cara menggunakan SEMUA di SQL Server