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

SQLでMAX(列値)、DISTINCT byMULTIPLE列の行を選択するにはどうすればよいですか?

    一般的な方法では、相関サブクエリを使用します:

    select t.*
    from t
    where t.date = (select max(t2.date) from t t2 where t2.env = t.env);
    

    おそらく少し良い方法は次のとおりです:

    select t.*
    from t
    where t.id = (select t2.id
                  from t t2 
                  where t2.env = t.env
                  order by t2.date desc, t2.id desc
                  limit 1
                 );
    

    (1)idなので、これは少し良いです おそらく主キーであるため、一致はより高速です。 (2)同じ日付に複数の行がある場合、1つの行のみが返されます。



    1. 移動平均-MySQL

    2. テーブルを変更して外部キー制約を与える

    3. 結合ステートメント内のMYSQLSelectMAX Date

    4. LATERAL JOINとPostgreSQLのサブクエリの違いは何ですか?