DELETE子句在單個查詢我有以下表結構,對於一個上(UID,時間戳)使用WITH + PostgreSQL中
Column | Type | Modifiers
----------------+-----------------------------+------------------------------------------------------
id | integer | not null default nextval('listens_id_seq'::regclass)
uid | character varying | not null
date | timestamp without time zone |
timestamp | integer | not null
artist_msid | uuid |
album_msid | uuid |
recording_msid | uuid |
json | character varying |
我需要刪除的所有條目命名用的PrimaryKey表特定用戶(uid)它們比最大時間戳更早,例如max是123456789(以秒爲單位),而增量爲100000,則所有記錄都早於max-100000。
我已經設法創建一個查詢,當表中包含一個用戶,但我無法制定它爲數據庫中的每個用戶工作。該操作需要爲數據庫中的每個用戶完成。
WITH max_table as (
SELECT max(timestamp) - 10000 as max
FROM listens
GROUP BY uid)
DELETE FROM listens
WHERE timestamp < (SELECT max FROM max_table);
任何解決方案?
你想要涉及單個最大值還是每個用戶的最大值?每個用戶最多可以使用 – Mureinik
。 –