Mysql 选择每组一列的最大值

Mysql 选择每组一列的最大值,mysql,group-by,inner-join,Mysql,Group By,Inner Join,我想显示porcentaje列的值,但仅显示id最高的记录(每个项): 输出: item id porcentaje -------------------------------------------- EXCAVACION DE FUNDACION 90 100 EXCAVACION DE FUNDACION 91 50 HORMIGON FUNDACIONES 92 90 HORMIGON

我想显示
porcentaje
列的值,但仅显示id最高的记录(每个
):

输出:

item                       id     porcentaje
--------------------------------------------
EXCAVACION DE FUNDACION    90     100
EXCAVACION DE FUNDACION    91     50
HORMIGON FUNDACIONES       92     90
HORMIGON FUNDACIONES       93     40
我只想显示标记的记录:

item                       id     porcentaje
--------------------------------------------
EXCAVACION DE FUNDACION    90     100
EXCAVACION DE FUNDACION    91     50 <------
HORMIGON FUNDACIONES       92     90
HORMIGON FUNDACIONES       93     40 <------

您应该按项目分组,然后可以使用
group_concat
,它有一个
order by
子句,然后从中提取第一个值:

SELECT     tb_avance.item, 
           max(tb_avance.id) as id,
           cast(group_concat(tb_proceso.porcentaje order by id desc) as unsigned) 
              as porcentaje
FROM       tb_avance_detalle
INNER JOIN tb_avance on tb_avance_detalle.id_avance = tb_avance.id
INNER JOIN tb_proceso ON tb_proceso.id_avance_detalle = tb_avance_detalle.id
INNER JOIN tb_mapa ON tb_mapa.id = tb_avance_detalle.id_mapa
WHERE      tb_mapa.manzana = 107 
       AND tb_mapa.lote = 12
GROUP BY   tb_avance.item
看见
item                       id     porcentaje
--------------------------------------------
EXCAVACION DE FUNDACION    91     50
HORMIGON FUNDACIONES       93     40
SELECT     tb_avance.item, 
           max(tb_avance.id) as id,
           cast(group_concat(tb_proceso.porcentaje order by id desc) as unsigned) 
              as porcentaje
FROM       tb_avance_detalle
INNER JOIN tb_avance on tb_avance_detalle.id_avance = tb_avance.id
INNER JOIN tb_proceso ON tb_proceso.id_avance_detalle = tb_avance_detalle.id
INNER JOIN tb_mapa ON tb_mapa.id = tb_avance_detalle.id_mapa
WHERE      tb_mapa.manzana = 107 
       AND tb_mapa.lote = 12
GROUP BY   tb_avance.item