MySQLで値1を持つ各顧客のタイムスタンプの後に行を削除しようとしています。MySQLは、値に基づいて、各顧客のタイムスタンプに基づいて行を削除します。
id | timestamp | cust_ID | value 899900 | 2016-04-11 12:00:00 | 500219 | 0 899901 | 2016-04-12 16:00:00 | 500219 | 0 899902 | 2016-04-14 11:00:00 | 500219 | 1 899903 | 2016-04-15 12:00:00 | 500219 | 1 909901 | 2016-04-12 16:00:00 | 500230 | 0 909902 | 2016-04-14 11:00:00 | 500230 | 1 909903 | 2016-04-15 12:00:00 | 500230 | 1 939905 | 2016-05-02 19:00:00 | 500240 | 0
をこれまでのところ、私はエラー1242をスローし、次のを持っている 'サブクエリが複数の行を返す':AS
CREATE VIEW
max_id
を例テーブル:達成しようとし
id | timestamp | cust_ID | value 899900 | 2016-04-11 12:00:00 | 500219 | 0 899901 | 2016-04-12 16:00:00 | 500219 | 0 899902 | 2016-04-14 11:00:00 | 500219 | 1 899903 | 2016-04-15 12:00:00 | 500219 | 1 899904 | 2016-04-23 09:00:00 | 500219 | 0 899905 | 2016-05-02 19:00:00 | 500219 | 0 909901 | 2016-04-12 16:00:00 | 500230 | 0 909902 | 2016-04-14 11:00:00 | 500230 | 1 909903 | 2016-04-15 12:00:00 | 500230 | 1 909904 | 2016-04-23 09:00:00 | 500230 | 0 909905 | 2016-05-02 19:00:00 | 500230 | 0 939905 | 2016-05-02 19:00:00 | 500240 | 0
SELECT
id
,cust_ID
、MAX(timestamp
)FROM table
WHERE value
= 1 GROUP BY cust_ID
; max_id
WHERE id
>(SELECT id
FROM max_id
GROUP BY cust_ID
)から削除します。
ご協力いただければ幸いです!
ありがとうございます。ただし、これはcust_idごとに1行しか保持しません。どんな助けもありがとう。 –
これで動作し、tt.timestamp> t.timestampに切り替えました。ありがとう! –