sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server:Lead/Lag analytisk funktion över grupper (och inte inom grupper)

Testa den här frågan:

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

Varför-fältet money_spent har flyttyp? Du kan ha problem med beräkningar. Konvertera den till decimaltyp.




  1. MySql Modifierat förbeställningsträd för att skapa url

  2. Hur får man en primärnyckel med nollvärden med hjälp av tom sträng?

  3. Mysql trigger/händelser vs Cronjob

  4. öar och luckor tsql