簡體   English   中英

redshift / postgresql-如何查找插入期間1秒鍾內出現的重復項?

[英]redshift/postgresql - How to find duplicates that occur within 1 second during insert?

我們有一個問題,其中一個節點正在記錄重復事件。 我們使用以下查詢僅插入唯一事件,但是某些事件在上一個事件之后的1秒內被觸發,因此以下查詢不會捕獲到它,因為日期字段不同。

有人可以幫我更新此查詢,以便即使相差1秒也只能捕獲唯一事件嗎?

INSERT INTO project_events
    SELECT * From (
         SELECT 
                session,
                date, 
                team,
                project,
                event_type,
                event_group,
                event_label,
                event_value,
                event_count,

                ROW_NUMBER() OVER ( PARTITION BY 
                    session,
                    date, 
                    team,
                    project,
                    event_type,
                    event_group,
                    event_label,
                    event_value,
                    event_count
                    ORDER BY date, project ASC 
                ) rownum  
         FROM tmp_table_name where record_type='update'
    ) WHERE rownum = 1;

首先,在您的示例中,將相同的屬性放在PARTITION BYORDER BY中幾乎沒有意義,因為每個組內的值都相同,因此您的查詢等同於對PARTITION BY屬性進行SELECT DISTINCT

現在,到真正的問題。 您怎么知道元素是獨特的? 是否基於所有這些屬性的組合: session,team,project,event_type,event_group,event_label,event_value,event_count

如果是這樣,請嘗試以下操作:

SELECT * FROM 
(
    SELECT 
            session,
            date, 
            team,
            project,
            event_type,
            event_group,
            event_label,
            event_value,
            event_count,
            LAG(date) OVER ( 
              PARTITION BY 
                session,
                team,
                project,
                event_type,
                event_group,
                event_label,
                event_value,
                event_count
              ORDER BY
                date
            ) prev_date 
     FROM tmp_table_name where record_type='update'
 ) sub
 WHERE prev_date IS NULL -- first event
    OR DATEDIFF(second, prev_date, date) > 1  -- events more than 1 second apart  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM