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

Problém s použitím ROW_NUMBER() OVER (PARTITION BY...)

Udělal bych něco takového:

;WITH x 
 AS (SELECT *, 
            Row_number() 
              OVER( 
                partition BY employeeid 
                ORDER BY datestart) rn 
     FROM   employeehistory) 
SELECT * 
FROM   x x1 
   LEFT OUTER JOIN x x2 
                ON x1.rn = x2.rn + 1 

Nebo by to možná bylo x2.rn - 1. Musíte vidět. V každém případě dostanete nápad. Jakmile máte stůl připojený k sobě, můžete filtrovat, seskupovat, třídit atd., abyste získali to, co potřebujete.



  1. Oracle Převod sekund na hodiny:minuty:sekundy

  2. PL/SQL:numerická nebo hodnotová chyba:vyrovnávací paměť znakového řetězce je příliš malá %ROWTYPE

  3. Jak zkontrolovat, zda existuje schéma PostgreSQL pomocí SQLAlchemy?

  4. Dotaz MySQL je pomalý při použití funkce Order By s funkcí pro výpočet vzdálenosti mezi dvěma body (long, lat)