【问题标题】:select uniques names when a column is not sooner than a specific date当列不早于特定日期时选择唯一名称
【发布时间】:2021-11-06 08:21:35
【问题描述】:

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

这是表架构:

表名: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 年之前也发动过袭击呢?是否有任何窗口功能可以做到这一点?或任何可能有帮助的东西?

【问题讨论】:

  • 指令不明确,要检索所有第一次进攻是在1885年的军队,所以不应该列出任何在1884年进攻的军队。为什么要使用窗口函数?
  • 没错!我不知道!我在原始查询中不是那么好!想也许有一个功能。那时可能不会;-D
  • 如果你给我一个格式良好的数据示例,我可以帮助你。

标签: sql database postgresql


【解决方案1】:

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

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')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-26
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 2016-12-30
    相关资源
    最近更新 更多