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

MySQL wybiera maksymalny rekord w grupie według

Dużo informacji pod adresem http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/

To zawsze był irytujący problem w MySQL. Były sposoby na obejście tego, takie jak połączenie kilku pól razem (zaczynając od external_id), a następnie wybranie MAX() tego, a następnie ponowne rozbicie.

Proponuję użyć tabeli pochodnej. Pierwsza tabela (t1) pochodzi z prostego zapytania, w którym identyfikujesz MAX(external_id) , następnie dołączasz do tego, aby uzyskać resztę danych.

TO JEST TYLKO JEŚLI external_id JEST WYJĄTKOWY

SELECT 
   t1.group_id, some_table.id, some_table.mypath
FROM 
   (
      SELECT group_id, MAX(external_id) AS external_id
      FROM some_table
      GROUP BY group_id
   ) as t1
INNER JOIN 
   sometable ON t1.external_id = sometable.external_id
WHERE ...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rezerwowanie identyfikatorów mySQL zwiększanych automatycznie?

  2. przy użyciu MySql.Data.MySqlClient; nie działa

  3. Uzyskiwanie dostępu do bazy danych MySQL za pomocą c# na unity?

  4. Odmowa dostępu do MYSQL dla użytkownika „root”@„localhost”

  5. jak rzutować szesnastkowy na varchar(datetime)?