Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Maksymalna funkcja serwera SQL

Oto jeden ze sposobów użycia ROW_NUMBER()

SELECT t.name, t.address, t.date, t.note
FROM (
    SELECT
        a.name, a.address, n.date, n.note,
        ROW_NUMBER() OVER (PARTITION BY a.name ORDER BY n.date DESC) rn
    FROM a
    LEFT JOIN n ON a.id = n.id
) t
WHERE t.rn = 1

alternatywą możesz użyć skorelowanego podzapytania, aby uzyskać maksymalną datę, coś takiego

SELECT
    a.name, a.address, n.date, n.note
FROM a
LEFT JOIN n ON a.id = n.id
WHERE n.date = (SELECT MAX(nn.date) 
                FROM n AS nn 
                WHERE a.id = nn.id)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pętla wyzwalacza SQL Server

  2. Odświeżanie metadanych funkcji użytkownika t-SQL

  3. Obetnij tabelę w ramach transakcji

  4. SYSUTCDATETIME() Przykłady w SQL Server (T-SQL)

  5. Zapytanie transpozycji tworzy węzły (SQL Server 2008)