Mysql,如何使用另一列的最大值对一组行进行分组?

时间:2016-04-27 19:46:35

标签: mysql

我的表格可能包含一行或多行 key_property 列的相同值。

我想在MySql中构建一个查询,该查询返回一个集合,其中 key_property 的每个值仅表示其对应的一个行,表示它还接收key_property过滤器对于之类的句子,由另一列的最大值选择(例如, event_id )。

我怎样才能做到这一点?

更新:

以下是未过滤表格的示例:

+--------------+--------+----------+
| 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    |
+--------------+--------+----------+

1 个答案:

答案 0 :(得分: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
)