我有DATETIME,REGISTER_NUM,STORE_ID列。 我正在尝试创建一个变量,用于计算当前事务过去5分钟内发生的事务数。
这是不正确的,但我真的需要帮助,因为缺乏经验,我感到气馁。
SELECT *
WHERE
COUNT(DATETIME >= DATEADD(mi, -5, GETDATE())) AS 5_MIN_INTERVAL_CT
答案 0 :(得分:1)
也许你正在寻找这样的东西:
SELECT COUNT(*) AS 5_MIN_INTERVAL_CT
FROM SomeTable
WHERE DATETIME >= DATEADD(mi, -5, GETDATE())
答案 1 :(得分:0)
获取您将使用的交易数量
SELECT COUNT(*)
FROM YourTransactionTable
WHERE [DATETIME] >= DATEADD(MINUTE, -5, GETDATE())
正如Rob在评论中提到的,您的查询中没有FROM TableName。您必须在查询中提及您从哪个表中选择数据。
答案 2 :(得分:0)
DATEADD
和GETDATE
不是SAS功能;您要查找的等效函数为INTNX
,间隔为DATETIME
,以获取当前系统时间戳。假设你有一个名为 mydata 的SAS数据集和一个名为 datetime 的变量,这将返回前五分钟的记录数:
proc sql;
select count(*) as FIVE_MIN_INTERVALS /* SAS names begin with letters */
from mydata
where datetime >= INTNX('MINUTE',DATETIME(),5)
;
退出;