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

mysqlテーブルで最大値の行を選択する方法

    group byを読む必要があります 条項。

    MySQLは本来よりもはるかに寛容であり、プロセスに混乱をもたらしています。基本的に、集計のない列はすべてgroup byに含める必要があります 句。しかし、MySQLの構文糖衣構文では、列を「忘れる」ことができます。これを行うと、MySQLはグループ化するセットから任意の値を吐き出します。あなたの場合、セットの最初の行はbobです。 、それでそれを返します。

    最初のステートメント(max()を使用 group byなし )は単に間違っています。

    最も古いユーザーの1人が必要な場合は、order by age desc limit 1 続行する正しい方法です。

    最も古いユーザーをすべて必要とする場合は、副選択が必要です:

    SELECT p.* FROM people p WHERE p.age = (select max(subp.age) from people subp);
    


    1. 追加の(個別の)フィルターを使用して列を集約します

    2. SQL ServerProfilerでのexecsp_reset_connectionはどういう意味ですか?

    3. Railsでの複数のデータベース接続

    4. date_formatで日付範囲MySQLを選択する