一段时间内的交易计数

时间:2013-05-31 22:09:43

标签: sql sas

我有DATETIME,REGISTER_NUM,STORE_ID列。 我正在尝试创建一个变量,用于计算当前事务过去5分钟内发生的事务数。

这是不正确的,但我真的需要帮助,因为缺乏经验,我感到气馁。

SELECT *
WHERE
COUNT(DATETIME >= DATEADD(mi, -5, GETDATE())) AS 5_MIN_INTERVAL_CT

3 个答案:

答案 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)

DATEADDGETDATE不是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)
   ;

退出;