0
私は2つの列、名前とタイムスタンプ、および共有名を持つ行の束を持つテーブルがある場合。どのように同じ名前を共有する各行セットの最新の行を選択するのですか?シンプルなMySQLの選択
ありがとうございます!
私は2つの列、名前とタイムスタンプ、および共有名を持つ行の束を持つテーブルがある場合。どのように同じ名前を共有する各行セットの最新の行を選択するのですか?シンプルなMySQLの選択
ありがとうございます!
SELECT name, MAX(timestamp) FROM Table1 GROUP BY name
編集:コメントに基づいて、次のことを試してください。
なし依存サブクエリとMCHLバージョンで追加されました
SELECT name, timestamp, col3, col4
FROM Table1 t1
WHERE timestamp = (SELECT MAX(t2.timestamp)
FROM Table1 t2
WHERE t1.name = t2.name);
(より良い実行する必要があります)
SELECT
t1.name, t1.timestamp, t1.col3, t1.col4
FROM
Table1 AS t1
CROSS JOIN (
SELECT
name, MAX(timestamp) AS timestamp
FROM
Table1
GROUP BY
name
) AS sq
USING (name,timestamp)
次に、サブクエリが必要です。
SELECT columns
FROM Table1 t1
WHERE row_id = (SELECT row_id
FROM table1 t2
WHERE t1.name = t2.name
ORDER BY timestamp DESC
LIMIT 1)
GROUP BY name
編集は、私は必要な...名前で
謝罪、私は必要な行の実際に他の列があるのグループを忘れてしまったその最大のタイムスタンプ – p9807
依存サブクエリに関連付けられている特定の行...性能が悪い – Mchl
@Mchl、性能に関する更新をありがとう。 –