繁体   English   中英

当列不早于特定日期时选择唯一名称

[英]select uniques names when a column is not sooner than a specific date

我正在尝试在这里进行原始查询,我不知道是否可行。

这是表架构:

表名:army_attack

列:

army_name varchar
created_at date
attacked_to varchar
first_attacked_at date

我想检索所有第一次攻击发生在 1885 年的军队名称。

我可以简单地做:

select distinct(army_name) 
from army_attack 
where first_attacked_at between '1885-1-1' and '1885-12-31'

但是,如果一支军队在 1885 年之前也遭到袭击呢? 有没有窗口函数可以做到这一点? 或任何可能有帮助的东西?

使用子查询提取第一次攻击在年份之前的军队

SELECT DISTINCT(army_name) from army_attack
WHERE first_attacked_at BETWEEN '1885-1-1' and '1885-12-31' 
and army_name not in 
(select army_name from army_attack where first_attacked_at <='1884')
SELECT * FROM army_attack
where first_attacked_at between '1885-1-1' and '1885-12-31' AND
attacked_to IN (SELECT attacked_to FROM army_attack where created_at < '1885-1-1')

暂无
暂无

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

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