2016-04-27 152 views
1

我有一个表可能有一个或多个行的key_property列具有相同的值。Mysql,如何使用另一列的最大值对一组行进行分组?

我想建立MySQL中的查询,返回一组,其中的key_property的每一个值被表示为仅一个其相应的行和,它也接收key_property滤波器用于句子,选择乘以另一列的最大值(例如,event_id)。

我该如何做到这一点?

UPDATE:

这里的未过滤的表的一个示例:

+--------------+--------+----------+ 
| key_property | others | event_id | 
+--------------+--------+----------+ 
| abcd  | B  |  1 | 
| abcd  | A  |  2 | 
| defg  | C  |  3 | 
| abcd  | D  |  4 | 
| hijk  | f  |  4 | 
+--------------+--------+----------+ 

当执行与设置好的为“d”的过滤器中的查询时,结果数据应该是这样的:

+--------------+--------+----------+ 
| key_property | others | event_id | 
+--------------+--------+----------+ 
| abcd  | D  |  4 | 
| defg  | C  |  3 | 
+--------------+--------+----------+ 
+0

http://dev.mysql.com/doc/refman/5.7/en/example-maximum-column-group-row.html – CBroe

+0

示出了样品的无线th数据和结果.. – scaisEdge

+2

你看过http://stackoverflow.com/questions/7745609/sql-select-only-rows-with-max-value-on-a-column?rq=1 – codemonkeyliketab

回答

0
SELECT * 
FROM tab WHERE (key_property,event_id) IN 
(SELECT key_property, MAX(event_id) 
    FROM tab 
    WHERE key_property like '%d%' 
    GROUP BY key_property 
) 
+0

@Daniel Calderon Mori这应该按预期工作,不是吗? – Reto

+0

它的确如此,谢谢 –

相关问题