Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SQL Server:funkcja analizy leadów/opóźnień w grupach (a nie w grupach)

Wypróbuj to zapytanie:

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

Dlaczego pole money_spent ma typ pływaka? Możesz mieć problemy z obliczeniami. Przekształć go w typ dziesiętny.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak używać OFFSET i Fetch bez zamówienia przez w SQL Server

  2. Dlaczego nie mogę znaleźć klucza obcego za pomocą funkcji OBJECT_ID()?

  3. Połącz PowerShell i SQL Diagnostic Manager, aby zautomatyzować monitorowanie SQL Server

  4. Klucz obcy odwołujący się do 2-kolumnowego klucza podstawowego w SQL Server

  5. Skonfiguruj wysyłanie dzienników programu SQL Server