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

SQL Query untuk Mendapatkan Nilai Maks Berdasarkan Nilai Maks yang Berbeda Diberikan Beberapa Catatan

SELECT
  MAX(id) id,
  po_nbr
FROM
  temp
GROUP BY
  po_nbr

Untuk memiliki tanggal terkait, Anda dapat melakukannya (hati-hati, ini menyiratkan id berurutan):

SELECT
  temp.id,
  temp.po_nbr,
  temp.crt_ts
FROM
  temp
  INNER JOIN (
    SELECT MAX(id) id FROM temp GROUP BY po_nbr
  ) latest ON latest.id = temp.id

Tanpa id berurutan, itu akan menjadi:

SELECT
  MAX(temp.id) id,
  temp.po_nbr,
  temp.crt_ts
FROM
  temp INNER JOIN (
    SELECT   MAX(crt_ts) crt_ts, po_nbr 
    FROM     temp i
    GROUP BY po_nbr
  ) latest ON latest.crt_ts = temp.crt_ts AND latest.po_nbr = temp.po_nbr
GROUP BY
  temp.po_nbr,
  temp.crt_ts

GROUP BY dapat diabaikan jika dijamin tidak ada dua tanggal yang sama per po_nbr grup.

Indeks pada crt_ts dan po_nbr bantuan dalam kueri terakhir, membuat satu indeks gabungan adalah yang terbaik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. UNTUK XML PATH di SQL server dan [text()]

  2. Instalasi SQL Server Business Intelligence Development Studio

  3. Cara mendapatkan nomor minggu bulan dari tanggal di sql server 2008

  4. Transpos baris dan kolom tanpa agregat

  5. SQRT() Contoh di SQL Server