[英]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.