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

MySQL vybírá maximální záznam ve skupině podle

Mnoho informací na http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/

To byl vždy nepříjemný problém v MySQL. Existují způsoby, jak to obejít, jako například zřetězení několika polí dohromady (začínající external_id) a poté vybrat MAX() z toho a pak to rozdělit zpět.

Doporučuji použít odvozenou tabulku. První tabulka (t1) je odvozena z jednoduchého dotazu, kde identifikujete MAX(external_id) , poté se z něj připojíte a získáte zbytek dat.

TO JE POUZE POKUD external_id JE UNIKÁT

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. Nahraďte všechna pole v MySQL

  2. Tipy ke snížení složitosti serveru SQL

  3. Nakonfigurujte poštovní server pro práci s PHP

  4. Nekompatibilita MySQL PHP