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

MySQLがgroupbyで最大レコードを選択

    http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/

    これは、MySQLでは常に厄介な問題でした。複数のフィールドを連結して(external_idで開始)、そのMAX()を選択してから分解するなど、これを回避する方法があります。

    派生テーブルを使用することをお勧めします。最初のテーブル(t1)は、MAX(external_id)を識別する単純なクエリから派生しています。 、次にそこから参加して残りのデータを取得します。

    これはexternal_idの場合のみです ユニークです

    SELECT 
       t1.group_id, some_table.id, some_table.mypath
    FROM 
       (
          SELECT group_id, MAX(external_id) AS external_id
          FROM some_table
          GROUP BY group_id
       ) as t1
    INNER JOIN 
       sometable ON t1.external_id = sometable.external_id
    WHERE ...
    



    1. 既存のデータベースを中心にフラスコアプリケーションを構築するにはどうすればよいですか?

    2. MySQLで初期値と自動インクリメントを設定するにはどうすればよいですか?

    3. MySQL CRC32()関数–例

    4. OracleのCONCAT()関数