sql >> Database teknologi >  >> RDS >> Oracle

Oracle:Få maksimal værdi af en gruppe?

Jeg har en tendens til at bruge analytiske funktioner

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

Du kan også bruge korrelerede underforespørgsler, selvom det vil være mindre effektivt

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. Forbruger webservice og indsætter CLOB ved hjælp af Node.js til Oracle Database-tabel

  2. Golang, mysql:Fejl 1040:For mange forbindelser

  3. Tomcat kan ikke finde gdk_custom.jar, Oracle kan ikke oprette det?

  4. Om klynget indeks i postgres