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

Vyberte poslední záznamy z tabulky pomocí seskupit podle

Za předpokladu že počáteční a koncové datum budou vždy nejvyšší hodnoty, pak musíte některé sloupce vypustit z GROUP BY (se všemi sloupci v GROUP BY je něco jako použití DISTINCT ) a ve druhém sloupci použijte agregační funkci:

SELECT UserId,
       MAX(StartDate) AS StartDate,
       MAX(EndDate) AS EndDate
FROM usersworktime
GROUP BY UserId;

Jinak, pokud tomu tak není, můžete použít CTE a ROW_NUMBER :

WITH CTE AS(
    SELECT UserID,
           StartDate,
           EndDate,
           ROW_NUMBER() OVER (PARTITION BY UserID ORDER BY UsersWordTimeID DESC) AS RN
    FROM usersworktime)
SELECT UserID,
       StartDate,
       EndDate
FROM CTE
WHERE RN = 1;


  1. Obnovení smazaného 'root' uživatele a hesla pro MySQL

  2. Codeigniter $this->db->reconnect(); používání

  3. Jak nejlépe využít funkci komentářů v MySQL

  4. Filtr dotazů Django využívající velké pole ID v Postgres DB