sql >> Databáze >  >> RDS >> Mysql

GROUP BY s MAX datem

Umístění poddotazu do klauzule WHERE a omezení na n.control_number znamená, že poddotaz spustí mnohokrát. Toto se nazývá korelovaný dílčí dotaz a často je to zabiják výkonu.

Je lepší spustit poddotaz jednou v klauzuli FROM, abyste získali maximální datum na kontrolní číslo.

SELECT n.* 
FROM tblpm n 
INNER JOIN (
  SELECT control_number, MAX(date_updated) AS date_updated
  FROM tblpm GROUP BY control_number
) AS max USING (control_number, date_updated);


  1. Jak odstranit nepracovní dobu v Oracle

  2. EXISTS vs JOIN a použití klauzule EXISTS

  3. Co je databáze Oracle?

  4. Vytvářejte, nelámejte, výkon serveru SQL