sql >> Database >  >> RDS >> Sqlserver

SQL-query voor tijdsintervallen. Syntaxis fouten.

Je kunt de JOIN . niet gebruiken zo moet je ofwel CROSS APPLY . gebruiken of OUTER APPLY (uitgaande van SQL Server). Voeg ook lengte toe aan varchars. Probeer nu dit:

SELECT r.user_id, r.reading_time start_time, rm.reading_time end_time, 
       (CONVERT(varchar(10), r.x)+' ; '+CONVERT(varchar(10), r.y)) start_point, 
       (CONVERT(varchar(10), rm.x)+' ; '+CONVERT(varchar(10), rm.y)) end_point 
FROM Readings r 
OUTER APPLY (SELECT TOP 1 r2.user_id, r2.reading_time, r2.x, r2.y
             FROM Readings r2
             WHERE r2.user_id=r.user_id and 
                   r2.reading_time < r.reading_time
             ORDER BY r2.reading_time desc) rm 
ORDER BY 1,2 desc;

Hier is een demo voor jou om te proberen.



  1. Best practices in het schalen van databases:deel 1

  2. Scala &Spelen! &Slick &PostgreSQL automatisch verhogen

  3. Hoe multidimensionale reeksen te implementeren

  4. Hoe panda's dataframe via mysqldb in de database invoegen?