sql >> Databáze >  >> RDS >> Sqlserver

Dotaz SQL pro seskupení položek podle času, ale pouze pokud jsou blízko sebe?

Tomu se říká "problém s ostrovy" a viděl jsem to jako řešení (poděkování Itzik Ben Gan)

select  tool_number,
        min(time) 'in',
        max(time) 'out',
        count(*)
from    (
    select  tool_number,
            time,
            ROW_NUMBER() OVER (ORDER BY time) - ROW_NUMBER() OVER (PARTITION BY Tool_Number ORDER BY time) AS Grp
    from    #temp
    ) as a
group by grp, tool_number
order by min(time)


  1. Mazání řádků z více tabulek v MySQL

  2. Jak získat certifikáty Amazon MySQL RDS

  3. Proč je executemany v Pythonu MySQLdb pomalé?

  4. při plánování na 1 rok načtěte 3 řádky každý den