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

SQL Server:Chức năng phân tích Lead / Lag giữa các nhóm (và không trong nhóm)

Hãy thử truy vấn này:

select cd.Dt
    , t.Dt_next
    , cd.customer_id
    , cd.buy_time
    , cd.money_spent
from (
    select Dt
        , LEAD(Dt) OVER (PARTITION BY customer_id ORDER BY Dt) AS Dt_next
        , customer_id
    from (
        select distinct Dt, customer_id
        from #customer_data
    ) t
) t
inner join #customer_data cd on t.customer_id = cd.customer_id and t.Dt = cd.Dt

Tại sao trường money_spent có loại float? Bạn có thể gặp vấn đề với các phép tính. Chuyển nó thành kiểu thập phân.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đối tượng 'DF __ *' phụ thuộc vào cột '*' - Thay đổi int thành double

  2. Giới thiệu Tính năng mới - Báo cáo tăng trưởng cơ sở dữ liệu đám mây Spotlight

  3. Định cấu hình Django với cơ sở dữ liệu MS SQL Server

  4. Tìm bảng đã khóa trong SQL Server

  5. Sử dụng FILEGROUP_NAME () để trả lại tên của nhóm tệp trong SQL Server