sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Server:Lead/Lag analytisk funktion på tværs af grupper (og ikke inden for grupper)

Prøv denne forespørgsel:

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

Hvorfor-feltet money_spent har flydetype? Du kan have problemer med beregninger. Konverter det til decimaltype.




  1. Brug af Jquery Ajax til at hente data fra Mysql

  2. Hvordan får man navn korrekt i Oracles diagnose i JDBC?

  3. Top ti grunde til at migrere fra Oracle til PostgreSQL

  4. PHP Fatal fejl:Kald til udefineret funktion mysqli_stmt_get_result()