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

Oracle:получаване на максимална стойност на група?

Склонен съм да използвам аналитични функции

SELECT monitor_id,
       host_name,
       calibration_date,
       value
  FROM (SELECT b.monitor_id,
               b.host_name,
               a.calibration_date,
               a.value,
               rank() over (partition by b.monitor_id order by a.calibration_date desc) rnk
          FROM table_name a,
               table_name2 b
         WHERE a.some_key = b.some_key)
 WHERE rnk = 1

Можете също така да използвате корелирани подзаявки, но това ще бъде по-малко ефективно

SELECT monitor_id,
       calibration_date,
       value
  FROM table_name a
 WHERE a.calibration_date = (SELECT MAX(b.calibration_date)
                               FROM table_name b
                              WHERE a.monitor_id = b.monitor_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. Как да форматирате красиво отпечатването на SQL заявки в SQLAlchemy?

  2. Съхранена процедура на Oracle Random Number Generator без използване на DBMS_RANDOM

  3. как да преобразувам датата в номер на месеца?

  4. Процедура за съхраняване на динамично повикване (незабавно изпълнение) Изходящи параметри Проблеми

  5. XML таблица с Oracle 11g