我有一个项目列表,按日期降序排序,并按如下方式检查:
counted = 0
DateToCheck = now
foreach(item)
{
if( abs(item.date - DateToCheck) > 14 days )
{
counted++
}
DateToCheck = item.date
}
目标是获取列表中未在上一个项目的14天内发生的项目计数。
该表只是一个日期列表,如下所示:
index ItemDate
307000 2017-08-17
307001 2017-04-25
307002 2016-09-23
307003 2016-08-26
307004 2016-04-30
307005 2016-03-01
307006 2016-03-01
此处的结果应为6,最后一项将被忽略,因为它在之前的14天内。
答案 0 :(得分:1)
如果您没有ID列,则可以使用此查询。如果您有ID列,请直接使用ID列。
import Foundation
class SongAttributes {
var songTitle: String
var songURL: String
init(songTitle: String, songURL: String) {
self.songURL = songURL
self.songTitle = songTitle
}
}
使用ID列,查询更改为
;WITH TBL AS (
SELECT ROW_NUMBER() OVER(ORDER BY ItemDate ASC) Id, ItemDate FROM TABLE_NAME
)
SELECT COUNT(a.ItemDate) FROM TBL a INNER JOIN TBL b ON b.ID = a.ID + 1 WHERE DATEDIFF(d, a.CreatedOn, b.CreatedOn) > 14;
答案 1 :(得分:1)
您可以使用此查询。
time