Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL Server:аналитична функция на Lead/Lag между групи (а не в рамките на групи)

Опитайте тази заявка:

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

Защо поле money_spent има тип float? Може да имате проблеми с изчисленията. Преобразувайте го в десетичен тип.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да преместя таблица в друга файлова група в MS SQL Server?

  2. Тъй като няма параметър за масив на Sqlserver, какъв е най-добрият начин да продължите?

  3. Какви са предимствата от използването на синтаксиса на конструктора на редове в оператор за вмъкване на T-Sql?

  4. Генериране на отчет от URL - SQL Server Reporting Services 2008

  5. SQL Server:използвайте параметър в CREATE DATABASE