繁体   English   中英

SQL:Select 每个类别的最近日期

[英]SQL: Select most recent date for each category

我正在从数据库中提取数据,其中一个表包含两列,它们共同标识一个位置,另一列包含每次服务的日期。 是否可以编写 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

我当然不介意尽我所能帮助别人,或者我不会出现在这个网站上,但你真的在发帖之前搜索过这个问题的答案吗?

这是一个简单的“分组依据”,使用“最近”日期是“最高值”或max()日期这一事实

select category_a, category_b, max(date)
from mytable
group by category_a, category_b
order by category_a, category_b -- The ORDER BY is optional, but the example data suggests it's needed

select category_a, category_b, max(date) from tbl group by category_a,category_b;

尝试

select category_a, category_b, max(date) as last_update from table group by category_a, category_b

暂无
暂无

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

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