繁体   English   中英

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

[英]Mysql, How to group a set of rows by using the max value of another column?

我有一个表可能有一行或多行具有相同的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    |
+--------------+--------+----------+
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
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM