sql >> データベース >  >> RDS >> Sqlserver

最大値を見つけて、SQLサーバーの別のフィールドから対応する値を表示します

    これを行うにはいくつかの方法があります:

    WHEREのフィルター 条項:

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

    またはサブクエリ:

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

    または、TOP WITH TIESを使用することもできます 。同点がない場合は、with tiesを削除できます 。これには、同じ人口値を持つすべての行が含まれます:

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

    SQL Serverを使用しているため、ランキング関数を使用して結果を取得することもできます。

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

    すべてのデモを含むSQLフィドルを参照してください。

    ランキング関数の補足として、dense_rank()を使用することをお勧めします row_number()の代わりに 。次に、同じ人口の都市が複数ある場合は、両方の都市名を取得します。 (デモを参照)




    1. MySQLで過去24時間のレコードを取得する方法

    2. テーブルの行サイズを決定する

    3. ExecuteBatchメソッドは、Javaで値-2の配列を返します

    4. PHPを使用してチェックボックスを選択し、複数の行を削除します