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

Temukan nilai maksimal dan tampilkan nilai yang sesuai dari bidang yang berbeda di server SQL

Ada beberapa cara yang bisa dilakukan:

Filter di WHERE klausa:

select id, name, population
from yourtable
where population in (select max(population)
                     from yourtable)

Atau subkueri:

select id, name, population
from yourtable t1
inner join
(
  select max(population) MaxPop
  from yourtable
) t2
  on t1.population = t2.maxpop;

Atau Anda dapat menggunakan TOP WITH TIES . Jika tidak ada ikatan, maka Anda dapat menghapus with ties . Ini akan mencakup setiap baris yang memiliki nilai populasi yang sama:

select top 1 with ties id, name, population
from yourtable
order by population desc

Karena Anda menggunakan SQL Server, Anda juga dapat menggunakan fungsi peringkat untuk mendapatkan hasilnya:

select id, name, population
from
(
  select id, name, population,
    row_number() over(order by population desc) rn
  from yourtable
) src
where rn = 1

Lihat SQL Fiddle dengan Demo semuanya.

Sebagai catatan tambahan pada fungsi peringkat, Anda mungkin ingin menggunakan dense_rank() bukannya row_number() . Kemudian jika Anda memiliki lebih dari satu kota dengan populasi yang sama, Anda akan mendapatkan kedua nama kota tersebut. (Lihat Demo)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Fitur Tersembunyi dari SQL Server

  2. Memperkenalkan Fitur Baru - Laporan Pertumbuhan Database Cloud Spotlight

  3. Bagaimana saya bisa menentukan di SQL Server jika rentang dateTime tumpang tindih dengan yang lain?

  4. Cara Mengatur Bahasa Default untuk Semua Login Baru di SQL Server (T-SQL)

  5. Cara Mengaktifkan Semua CEK &Batasan Kunci Asing dalam Database di SQL Server (Contoh T-SQL)