Re: [SQL ] 查詢特定時間內滿足3次的第一筆資料
-- 你的資料表
create table #temp(
ID char(1),
EventDate char(8)
)
-- 計算結果
select ID,min(EventDate) EventDate
from (
select t1.ID,t1.EventDate
from #temp t1 inner join #temp t2
on t1.ID = t2.ID and t1.EventDate <= t2.EventDate
and convert(char(8),dateadd(year,1,t1.EventDate),112) >= t2.EventDate
group by t1.ID,t1.EventDate
having count(*) >= 3
) t1
group by ID
※ 引述《Mutex (Mutex)》之銘言:
: 資料庫名稱:SQL
: 資料庫版本:2012
: 內容/問題描述:
: 想要請教如何計算某特定區間內,滿足3次的設定條件,並呈現第一筆的日期
: 也可以說是"計算任何一年區間內,有出現三筆資料,並呈現第一筆資料日期"
: 資料範例如下
: ID EventDate
: A 20050101
: A 20051201
: A 20060215
: A 20060425
: B 20100505
: B 20100707
: B 20100808
: B 20110404
: B 20110425
: C 20000101
: C 20000606
: 想要算出的答案應該是
: A 20050601 <<< 從20051201開始算一年內,count >= 3,所以答案是20051201
: 因為從20050101開始算一年內,沒有滿足3次的條件,所以不是這天
: B 20100505 <<< 20100505、20100707、20100808都有滿足條件,但求最小值2010505
: C則因為沒有滿足條件,所以答案不會有C
: 再麻煩高手協助解惑了 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.61.233.210
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1437977308.A.F1D.html
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):