SQL:为每个类别选择最近的日期

标签 sql

我正在从数据库中提取数据,其中一个表包含两列共同标识一个位置,另一列包含每次服务的日期。是否可以编写 SQL 查询,以便获得每个位置服务的最近时间?

因此,如果我的原始数据如下所示:

category_a  category_b  date
       1           a     1/1/01
       1           a     2/2/02
       1           b     1/2/01
       1           b     2/3/02
       2           a     1/3/01
       2           a     2/4/02
       2           b     1/4/01
       2           b     2/5/02

然后查询将返回:
category_a  category_b  date
       1           a     2/2/02
       1           b     2/3/02
       2           a     2/4/02
       2           b     2/5/02

如果数据库的创作方式是将类别组合存储在单独的表中,那么这将很容易做到。但是,我不控制此数据库,因此无法对其进行更改。

最佳答案

SELECT
    category_a,
    category_b,
    MAX(date)
FROM
    Some_Unnamed_Table
GROUP BY
    category_a,
    category_b
ORDER BY
    category_a,
    category_b

我当然不介意在我可以的时候帮助别人,或者我不会在这个网站上,但是你真的在发布之前搜索过这个问题的答案吗?

关于SQL:为每个类别选择最近的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6680568/

相关文章:

sql - 在 pgSQL select 中使用正则表达式捕获

sql - 在 Azure CosmosDB SQL 查询中将 TimeScript 转换为日期

sql - 如何根据最大时间间隔进行选择

sql server 错误地重写了我的查询?

mysql - 对不同列中的值进行分组并计数

sql - TSQL SELECT 语句中的 "As"和 "="有什么区别?

MySQL ORDER BY 使用文件排序(2 个连接表)

mysql - 如何条件 SQL WHERE

javascript - X-可编辑简单数据库更新不更新

sql - 将计算列/虚拟列添加到现有查询