私は、UNIXのタイムスタンプと物の説明を持つテーブルを持っています。テーブルには、それぞれ異なるタイムスタンプを持つ複数のエントリがあります。私は各事の最後の5つのタイムスタンプを選択する必要があります。MYSQL - 特定のフィールドに基づいて最新の5行を返す
Aの行が100行、B行の行が130行、Cの行が20行の場合、それぞれの最後の5つを見たいと思っています。
私は制限を試しましたが、それは私に質問の最後の5つを与えます。
何か提案がありがとうございます。
私は、UNIXのタイムスタンプと物の説明を持つテーブルを持っています。テーブルには、それぞれ異なるタイムスタンプを持つ複数のエントリがあります。私は各事の最後の5つのタイムスタンプを選択する必要があります。MYSQL - 特定のフィールドに基づいて最新の5行を返す
Aの行が100行、B行の行が130行、Cの行が20行の場合、それぞれの最後の5つを見たいと思っています。
私は制限を試しましたが、それは私に質問の最後の5つを与えます。
何か提案がありがとうございます。
あなたはROW_NUMBER
(MySQLの8.0)を使用することができます
SELECT *
FROM (SELECT *,ROW_NUMBER() OVER(PARTITION BY col1 ORDER BY time_col DESC) rn
FROM tab) sub
WHERE rn <= 5;
100の行を、あなたは簡単に行うことができます
select t.*
from t
where (select count(*)
from t t2
where t2.thing = t.thing and t2.timestampe <= t.timestamp
) <= 5;
あなたのテーブル、レコードと所望の出力を共有してください。 – lucky
はい。それは確かに重複した質問でした。正しい質問スレッドと答えへのポインタに感謝します。 – Eric