sql >> Database >  >> RDS >> Sqlserver

SQL Server:Lead/Lag analytische functie tussen groepen (en niet binnen groepen)

Probeer deze zoekopdracht:

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

Waarom veld money_spent heeft een vlottertype? U kunt problemen hebben met berekeningen. Converteer het naar decimaal type.




  1. Geef parameters van een batchbestand door aan het sqlplus-script

  2. Hoe gegevens met komma's in verschillende tekens op te slaan die door een trigger gaan?

  3. REGEXP_REPLACE - verwijder nieuwe regel \n ALLEEN uit tekenreeks als deze is ingesloten tussen ()'s

  4. PHP PDO Mysql Prestaties invoegen