PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

PostgreSQL:Xác định khách truy cập quay lại dựa trên ngày - tham gia hoặc chức năng cửa sổ?

Đầu tiên, tôi xóa event_sequence với DISTINCT (giả sử rằng tất cả các sự kiện diễn ra trong cùng một ngày), thì tôi sử dụng hàm cửa sổ lead và so sánh với ngày của chuyến thăm tiếp theo:

SELECT visitor_id,
       session_id,
       COALESCE(
          lead(d_date) OVER w - d_date,
          10
       ) < 7 AS revisited,
       d_date
FROM (SELECT DISTINCT visitor_id,
                      session_id,
                      d_date
      FROM "table"
     ) t
WINDOW w AS (PARTITION BY visitor_id
             ORDER BY d_date
             ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
            )
ORDER BY visitor_id, session_id;

┌────────────┬────────────┬───────────┬────────────┐
│ visitor_id │ session_id │ revisited │   d_date   │
├────────────┼────────────┼───────────┼────────────┤
│          1 │          1 │ t         │ 2017-01-01 │
│          1 │          2 │ f         │ 2017-01-05 │
│          1 │          3 │ t         │ 2017-01-20 │
│          1 │          4 │ f         │ 2017-01-25 │
│          2 │          1 │ t         │ 2017-01-02 │
│          2 │          2 │ f         │ 2017-01-02 │
│          2 │          3 │ f         │ 2017-01-18 │
└────────────┴────────────┴───────────┴────────────┘
(7 rows)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL để lặp qua các hàng và tìm kết quả phù hợp nhất bằng cách sử dụng hàm khoảng cách tùy chỉnh

  2. Làm cách nào để kích hoạt trình kích hoạt khi kết thúc chuỗi cập nhật?

  3. Chạy các tập lệnh sql với sự phụ thuộc lẫn nhau

  4. Perl - DBI và .pgpass

  5. Lỗi PostgreSQL:đối số chuỗi truy vấn của EXECUTE là null