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

GROUP BY с MAX дата

Поставянето на подзаявката в клаузата WHERE и ограничаването й до n.control_number означава, че тя изпълнява подзаявката много пъти. Това се нарича корелирана подзаявка , и често е убиец на представянето.

По-добре е да изпълните подзаявката веднъж, в клаузата FROM, за да получите максималната дата за контролен номер.

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

  2. COUNT(*) винаги ли връща резултат?

  3. Нулирайте Root паролата на MySQL Server

  4. Как да търсите точно съвпадаща дума с MySql Query

  5. изберете дублиран запис и пребройте запис от запетая, разделени в mysql