名前、都市、LastUpdatedのようなデータを持つテーブルがあります。私はテーブルからすべてのデータを名前で区別したいが、最後に更新されたものは最新のものだけを記録したい。
2つのレコードの
ビル、LA、2017年9月11日
ビル、NYがある場合は、クエリ上記で2017年9月19日
はビル、NY、2017年9月19日のレコードを返す必要があります。このようにして、名前が異なるが最後に更新されたすべてのレコードを最新のものにしたい(降順)。
ジョブを実行するSQLクエリは何ですか?MySQL - すべての列を選択する最後の日付で1列がDISTINCTである
0
A
答えて
3
これは主に、他の回答/コメントが必要なものから外れているように見えるためです。あなたが取得したいすべてがそれぞれの名前に関連付けられている最新の更新した場合は、次のような単純なGROUP BY
のクエリを使用できます。
SELECT Name, MAX(LastUpdated)
FROM yourTable
GROUP BY Name
をしかし、あなたは、それぞれの名前を完全に最新のレコード(つまり、すべての列)を取得したい場合は、 GROUP BY
はName
または他の列を集計で選択することしかできません(他の列がName
で一意に決定できる場合は完全に真ではありませんが、一般的には真です)。正式な方法は、元のテーブルを上記のサブクエリに結合し、各名前の最新のものを除いてすべての行をフィルタで取り除くことです。
SELECT t1.*
FROM yourTable t1
INNER JOIN
(
SELECT Name, MAX(LastUpdated) AS max_last_updated
FROM yourTable
GROUP BY Name
) t2
ON t1.Name = t2.Name AND
t1.LastUpdated = t2.max_last_updated
1
SELECT t1.*
FROM Tablename AS t1
(
SELECT name, MAX(LastUpdated) AS LastUpdated
FROM Tablename
GROUP BY name
) AS t2 INNER JOIN t1.name = t2.name
AND t1.LastUpdated = t2.LastUpdated
2
これは、2つのステップで解決することができます。
- last_updated_date
- で行を探すには、その行のすべてのデータを表示します。
クエリは次のようになります。
SELECT
t.name,
t.city,
t.last_updated
FROM yourtable t
WHERE t.last_updated = (
SELECT MAX(s.last_updated)
FROM yourtable s
WHERE s.name = t.name
);
関連する問題
- 1. Mysql日付で日付を選択してからグループで列を並べる
- 2. MySQLのDISTINCTを1列で
- 3. MYSQL - 2列のdISTINCT値を選択
- 4. グループから最大日付の列を選択するLINQ
- 5. datetime列が特定の日である行を選択する
- 6. 最大日付で再選択する
- 7. MySQL最も最近の日時以外のすべてを選択するクエリ
- 8. 特定の列でdistinctを選択しますが、ハイブでも他の列を選択してください
- 9. MYSQLは2列のDISTINCT値を選択します
- 10. 2つの列でdistinctを選択しますが、SQL Serverからすべての列を返します
- 11. mysqlクエリのすべての列ではなく、ただ1つの列を選択する
- 12. mysqlの列としてテーブルに選択日付を追加する方法は?
- 13. 最新の日付を持つすべてのレコードを選択する
- 14. 日付ピッカーのjsで選択できる日付の選択
- 15. 選択されている場合はfalseを返します。日付は最後です配列の配列の日付
- 16. MAX(列値)、SQLの別の列でDISTINCTの行を選択
- 17. 私のリストのすべてのエントリがその日付のテーブルにあるテーブルから日付を選択
- 18. のMySQL DISTINCT 2つの列と同じテーブルを選択し
- 19. MySql 1日あたりのデータ数を選択してカウントする - 空の日付を含める
- 20. mysqlデータベースの列のサブセットを選択 - 日付
- 21. LINQでJOINの後にすべての列を選択
- 22. MySQLの昨日の日付を選択
- 23. MySQLで最後のレコードをユーザーが選択する方法は?
- 24. MySQL:レコードがなくても範囲内のすべての日付を選択
- 25. SQL Distinctカラムと最新の日付を選択してください
- 26. シーケンス番号列を含むすべての列を選択する際にDISTINCTを使用する方法は?
- 27. MySQLから最も古い日付を選択する方法
- 28. 複数の列でdistinctを選択します。whereステートメント
- 29. すべての列から1つの列にユニークに選択
- 30. LINQ Distinct By One列のタイムアウトエラーを選択
は、あなたがこれまでに試してみましたか? – bbrumm
これを送信する前にStack Overflowを検索して、既存のソリューションが見つかるかどうかを確認しましたか? –
スタックオーバーフローを検索しましたが、必要な答えが見つかりませんでした。 – Greatchap