SQL 查询按(项目、环境)分组并为每个组合查找最新条目?
SQL query for grouping by (project, environment) and finding the newest entry for each combination?
我有一个 table 数据如下所示
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
但是每个(项目、环境)元组应该只有 return 一个条目(最新的)。如果有区别的话,我的数据库在 Cosmo DB 中。
这是我的预期输出
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`
这里 os 一个 mysql 示例来证明它有效 https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=86353790b7f73f766df01997255bdeb3
我有一个 table 数据如下所示
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
但是每个(项目、环境)元组应该只有 return 一个条目(最新的)。如果有区别的话,我的数据库在 Cosmo DB 中。
这是我的预期输出
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`
这里 os 一个 mysql 示例来证明它有效 https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=86353790b7f73f766df01997255bdeb3