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

グループ化されたMySQLデータから最新の日付を取得する

    各モデルの最大日をお探しですか?

    SELECT model, max(date) FROM doc
    GROUP BY model
    

    テーブル全体の最大日付に一致するすべてのモデルを探している場合...

    SELECT model, date FROM doc
    WHERE date IN (SELECT max(date) FROM doc)
    

    [---追加---]

    各モデルグループ内の最新の日付に一致するすべてのレコードの詳細を表示したい場合(OPで要求された要約データではありません):

    SELECT d.model, d.date, d.color, d.etc FROM doc d
    WHERE d.date IN (SELECT max(d2.date) FROM doc d2 WHERE d2.model=d.model)
    

    MySQL8.0以降はOVERをサポートします 句、より大きなデータセットに対して同じ結果を少し速く生成します。

    SELECT model, date, color, etc FROM (SELECT model, date, color, etc, 
      max(date) OVER (PARTITION BY model) max_date FROM doc) predoc 
    WHERE date=max_date;
    


    1. ランダムな結果を10個取得するためにwhile/loopを実行する

    2. ClusterControlを使用してPostgreSQLをDockerコンテナにデプロイする方法

    3. IDを使用して複数のSQLテーブルを結合するにはどうすればよいですか?

    4. データベースリンクを介してOracleでストアド関数(ユーザー定義型の配列を返す)を呼び出す