我从数据库中提取数据,其中一个表包含两列,它们共同标识一个位置,另一列包含每次服务的日期。是否可以编写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
如果数据库是以类别组合存储在单独的表中的方式创作的,那么这很容易做到。但是,我不控制这个数据库,因此我无法对其进行更改。
答案 0 :(得分:9)
SELECT
category_a,
category_b,
MAX(date)
FROM
Some_Unnamed_Table
GROUP BY
category_a,
category_b
ORDER BY
category_a,
category_b
我当然不介意在我可以的时候帮助别人,或者我不会在这个网站上,但你是否真的在发布之前寻找答案?
答案 1 :(得分:2)
这是一个简单的“分组依据”使用“最近”日期是“最高价值”或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
答案 2 :(得分:1)
按类别_a,category_b从tbl group中选择category_a,category_b,max(date);
答案 3 :(得分:1)
尝试
select category_a, category_b, max(date) as last_update from table group by category_a, category_b