我想在這里做一個原始查詢,我不知道這是否可能。
這是表架構:
表名: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 年之前也遭到襲擊呢?有沒有視窗函式可以做到這一點?或任何可能有幫助的東西?
uj5u.com熱心網友回復:
使用子查詢提取第一次攻擊在年份之前的軍隊
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')
uj5u.com熱心網友回復:
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')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/350367.html
標籤:sql 数据库 PostgreSQL
上一篇:SQL插入重復項
下一篇:Mongodb按內部元素分組
