我有一個複雜的查詢來運行Sqlite。請考慮下表。在Sqlite上的查詢只能爲每個用戶分組三個最近的記錄
我將需要三個最近的記錄爲每個用戶ID和BatchID和狀態的總和。我還需要計算每個結果的記錄數。
例如,假設用戶ID U6TH16003只有1條記錄,則記錄數將爲1.用戶U6TH15001有7條記錄,只有3條最近的記錄會被考慮,並且狀態字段會被添加到3條最近的記錄中用戶這給2和審議了狀態字段的總和記錄總數爲3
Date UserID Status
2016-11-14 U6TH16001 0
2016-11-17 U6TH16001 0
2016-11-07 U6TH16001 1
2016-11-01 U6TH16001 0
2016-10-20 U6TH16002 1
2016-10-15 U6TH16002 1
2016-10-10 U6TH16002 1
2016-11-14 U6TH16003 1
2016-11-17 U6TH15001 1
2016-11-14 U6TH15001 0
2016-11-07 U6TH15001 1
2016-11-01 U6TH15001 0
2016-10-28 U6TH15001 1
2016-10-23 U6TH15001 1
2016-10-15 U6TH15001 1
,我需要對上表的輸出是如下:
UserID Sum(Status) NumberOfRecords
U6TH16001 1 3
U6TH16002 3 3
U6TH16003 1 1
U6TH15001 2 3
謝謝你你的幫助。
這需要某種行號的功能,不幸的是SQLite沒有內置。 –
我已經嘗試過類似這樣的事情了:從用戶組表單中選擇UserID,SUM(Att_status))。它將所有記錄都歸還給我,有沒有辦法只考慮最多的三個? – Lovelesh
您嘗試的問題是「LIMIT」將應用於整個查詢。但是你想要將它應用到每個組。其他RDBMS具有行號功能,可用於保留每組的前3行。在SQLite中,你將不得不以某種方式模擬這種行爲。 –