Mysql
 sql >> Baza danych >  >> RDS >> Mysql

GRUPUJ WEDŁUG MAKSYMALNEJ DATY

Umieszczenie podzapytania w klauzuli WHERE i ograniczenie jej do n.liczba_kontroli oznacza, że ​​podzapytanie jest uruchamiane wiele razy. Nazywa się to skorelowanym podzapytaniem i często jest zabójcą wydajności.

Lepiej jest uruchomić podzapytanie raz, w klauzuli FROM, aby uzyskać maksymalną datę na numer kontrolny.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL - Podziel dane na wiele wierszy

  2. Przechowuj HTML w bazie danych MySQL

  3. Wybierz wszystkie daty między dwiema datami bez użycia tabeli (wygeneruj listę dat)

  4. usuń zduplikowane wiersze na podstawie wartości jednej kolumny

  5. Czy używanie tabeli głównej dla kolumn współdzielonych jest dobrą praktyką dla całej bazy danych?