Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Максимална функция на SQL Server

Ето един начин с помощта на 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

като алтернатива можете да използвате корелирана подзаявка, за да получите максималната дата, нещо подобно

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. Има ли начин да се запази променлива през цялото време?

  2. SQL Server 2017:Налични функции в Linux

  3. Microsoft ODBC драйвер 13 за SQL Server:Неуспешно влизане за потребител 'sa'

  4. Добавете WHERE клаузи към SQL динамично / програмно

  5. Съхранявайте отговорите в sql таблица с уникален идентификатор и съхранявайте всеки отговор в колони