グループ化されたMySQLデータから最新の日付を取得する
2023-09-24 03:36:21
質問
私のデータベースには以下のデータがあります。
|NO | model | date |
+---+-------+----------+
|1 | bee |2011-12-01|
|2 | bee |2011-12-05|
|3 | bee |2011-12-12|
|4 | tar |2011-12-13|
各モデルグループの最新日付を取得したい。
| model | date |
+-------+----------+
| bee |2011-12-12|
| tar |2011-12-13|
試してみました。
SELECT model, date
FROM doc
WHERE date ........????? //what is the next?
GROUP BY model
どのように解決するのですか?
各モデルの最大日付を調べているのでしょうか?
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)
MySQL 8.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;
関連
-
[解決済み】MySQL エラー 1093 - FROM 句で更新のターゲット テーブルを指定できません。
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] JavaScriptで現在の日付を取得するには?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] 各グループの最後のレコードを取得する - MySQL
-
[解決済み] MYSQLでMAX(列の値)、PARTITIONで別の列で行を選択するにはどうすればよいですか?
-
[解決済み] 各グループの上位1行を取得
-
[解決済み] ある列の最大値を持つ行を取得する
-
[解決済み] mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows etc. は、パラメータ 1 がリソースであることを期待する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ジョイントインデックスのためのmysqlの条件とインデックスが失敗するための条件
-
mysqlにおけるvarcharの日付比較とソートの実装
-
mysqlのデータ圧縮性能比較 詳細
-
[解決済み】DynamoDB : 提供されたキー要素がスキーマと一致しません。
-
[解決済み] mysqladminのフラッシュホストでブロックを解除する方法
-
[解決済み] MySQLのプロセスリストを見つけ、それらのプロセスを終了させる方法は?
-
[解決済み] KEYキーワードは何を意味するのか?
-
[解決済み] MySQLデータベースのテーブルのサイズを取得する方法は?
-
[解決済み] MySQLテーブルへの挿入または存在する場合の更新
-
[解決済み] MYSQLでMAX(列の値)、PARTITIONで別の列で行を選択するにはどうすればよいですか?