[解決済み] 異なる行を選択しながら、1つのフィールドの最小値でグループ化する
2023-06-15 04:40:26
質問
私がやろうとしていることは、次のようなことです。例えば、このテーブルtがあるとします。
key_id | id | record_date | other_cols
1 | 18 | 2011-04-03 | x
2 | 18 | 2012-05-19 | y
3 | 18 | 2012-08-09 | z
4 | 19 | 2009-06-01 | a
5 | 19 | 2011-04-03 | b
6 | 19 | 2011-10-25 | c
7 | 19 | 2012-08-09 | d
各IDについて、最小のrecord_dateを含む行を選択したいと思います。だから、私は得るでしょう。
key_id | id | record_date | other_cols
1 | 18 | 2011-04-03 | x
4 | 19 | 2009-06-01 | a
この問題に対する唯一の解決策は、すべてのrecord_dateエントリが明確であることを前提としていますが、私のデータではそのようなことはありません。サブクエリと2つの条件による内部結合を使用すると、いくつかのIDについて重複した行が生成されることになりますが、これは望ましくありません。
key_id | id | record_date | other_cols
1 | 18 | 2011-04-03 | x
5 | 19 | 2011-04-03 | b
4 | 19 | 2009-06-01 | a
どのように解決するのですか?
のようなものはいかがでしょうか。
SELECT mt.*
FROM MyTable mt INNER JOIN
(
SELECT id, MIN(record_date) AS MinDate
FROM MyTable
GROUP BY id
) t ON mt.id = t.id AND mt.record_date = t.MinDate
これは、IDごとに最小の日付を取得し、その値に基づいて値を取得します。重複が発生するのは、同じIDの最小記録日が重複している場合のみです。
関連
-
[解決済み] SQL ServerでJOINを使用してUPDATE文を実行するにはどうすればよいですか?
-
[解決済み] MySQLの複数行を1つのフィールドに連結することはできますか?
-
[解決済み] INNER JOIN ON vs WHERE句
-
[解決済み] 最初の行への結合方法
-
[解決済み] MYSQLでMAX(列の値)、PARTITIONで別の列で行を選択するにはどうすればよいですか?
-
[解決済み] DISTINCTでCOUNT(*)を選択する
-
[解決済み] Postgres でサブクエリを使用してテーブルの行を更新する
-
[解決済み] GROUP BYとDISTINCTの違いは何ですか?
-
[解決済み】MySQLでSELECT DISTINCTとGROUP BYのどちらが速いか?
-
[解決済み】1つの列のSELECT DISTINCT
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
ERROR 1136 (21S01) を解決してください。列の数が Mysql の行 1 の値の数と一致しません。
-
executeQuery()ソリューションでデータ操作文を発行できない。
-
[解決済み] SQL Server で複数行のテキストを 1 つのテキスト文字列に連結する方法
-
[解決済み] MongoDBに "like "を使ってクエリを実行する方法
-
[解決済み] SQLのSELECTでIF...THENを実行するにはどうすればよいですか?
-
[解決済み] SQL ServerでJOINを使用してUPDATE文を実行するにはどうすればよいですか?
-
[解決済み] SQL Serverでテーブルからカラム名を取得するにはどうすればよいですか?
-
[解決済み] SQL Serverには、.NETのMath.Maxのような2つの値を取るMax関数はありますか?
-
[解決済み] T-SQL文の接頭辞Nの意味と使うべきタイミングは?
-
[解決済み] Postgres でサブクエリを使用してテーブルの行を更新する