用于按(项目、环境)分组并查找每个组合的最新条目的SQL查询? [英] SQL query for grouping by (project, environment) and finding the newest entry for each combination?

查看:0
本文介绍了用于按(项目、环境)分组并查找每个组合的最新条目的SQL查询?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个表,其中的数据如下

project  | environment | timestamp
----------------------------------------
project1 | dev         | 1644515845
project1 | dev         | 1644513211
project1 | qa          | 1644515542
project2 | dev         | 1644513692
project2 | qa          | 1644514822

有多个项目,每个项目有多个环境。与每个(项目、环境)对相关联的多个时间戳与上次更改项目的时间相对应。

是否有要按(项目、环境)分组并获取(项目、环境)每个组合的最新时间戳的条目的查询?

类似于

SELECT c.project, c.environment, c.timestamp
FROM c
GROUP BY c.project, c.environment, c.timestamp
ORDER BY c.timestamp
但是它应该只为每个(项目、环境)元组返回一个条目(最新的)。我的数据库在Cosmo数据库中,如果这有什么不同的话。

这是我的预期输出

project  | environment | timestamp
----------------------------------------
project1 | dev         | 1644515845
project1 | qa          | 1644515542
project2 | dev         | 1644513692
project2 | qa          | 1644514822

推荐答案

从组中删除时间戳并选择最大时间戳

SELECT `project`, `environment`, MAX(`timestamp`)
FROM 
c
GROUP BY `project`, `environment`

下面是一个MySQL示例,说明它是有效的https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=86353790b7f73f766df01997255bdeb3

这篇关于用于按(项目、环境)分组并查找每个组合的最新条目的SQL查询?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆