1列篩選結果我做了一個艱難的時間想出一個合適的標題。這是問題。我試圖確定新用戶,月份,月份,他們何時進入工具並制定計劃。SQL - 基於最新另一列
這裏是我到目前爲止
select
distinct userID,
MIN(planID),
MIN(PlanCreated)
from dataBaseName.tableName
Group by userID
這爲我提供了我所需要的地面信息。我得到了用戶以及他們創建的第一個計劃和時間。
不過,我需要進一步細化此。由於有些用戶進入該工具,只創建該計劃,使其處於「草稿」狀態,並且永遠不會返回。我需要過濾超過3個月的草案計劃。
有一個「PlanStatus」列了基於「草稿」狀態過濾是很簡單的
where PlanStatus
is not in 'Draft'
但同樣,我只是想去掉比3的結果個月以上的計劃。
ex。日期格式 - 2017年1月1日00:00:00
我也不知道該過濾器應先這樣做,如果他們後來創建了一個計劃,再搬出來的狀態草案ID沒有被完全清除。
的樣本數據:
planID | userID | PlanCreated | PlanStatus | OtherColumns
1111 | 2 | 2016-01-17 00:00:00 | Completed | null
1112 | 1 | 2016-06-31 00:00:00 | Draft | null
1113 | 2 | 2017-01-24 00:00:00 | Completed | null
1114 | 3 | 2017-02-04 00:00:00 | Draft | null
1115 | 1 | 2017-03-12 00:00:00 | Draft | null
預期結果:
planID | userID | PlanCreated | PlanStatus | OtherColumns
1111 | 2 | 2016-01-17 00:00:00 | Completed | null
1114 | 3 | 2017-02-04 00:00:00 | Draft | null
1115 | 1 | 2017-03-12 00:00:00 | Draft | null
請幫
標籤您與您正在使用的數據庫的問題。另外樣本數據和期望的結果將有所幫助。 –
增加以及預期的結果和數據庫的樣本數據標記 – Zardoz
注意,如果PlanId不增加順序你可能使用'MIN(planID), MIN(PlanCreated)'當得到一個錯誤的結果。你真的想要返回所有專欄還是隻有這三個? – dnoeth