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

mySQLグループ別の最大数

    一般に、サブクエリのORDERBYは意味がありません。 (FETCH FIRST / LIMIT / TOPなどと組み合わせた場合にのみ機能します)

    解決策は、相関サブクエリを使用して、「メインクエリ」の現在の行のユーザー名、場所、種の組み合わせに対して最も重い魚を見つけることです。同点の場合は、両方の行が返されます。

    SELECT *
    FROM entries e1
    WHERE username = :user
      AND CAST(weight AS DECIMAL(9,3)) = (select max(CAST(weight AS DECIMAL(9,3)))
                                          from entries e2
                                          where e1.username = e2.username
                                            and e1.location = e2.location
                                            and e1.species = e2.species)
    

    値を比較するときに両側をキャストする必要があるため、重みの文字はまだ悪い選択であることに注意してください。テーブルの小数に戻ります!




    1. MySqlWorkbenchでGoogleCloudSQLに接続できません

    2. SIDとINSTANCE_NAMEを使用してoracleをpdoに接続します

    3. MySQL制限、グループ、およびAVGクエリ

    4. cx_Oracle接続タイムアウト