-1

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

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

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

3 回答 3

1

也许你正在寻找这样的东西:

SELECT COUNT(*) AS 5_MIN_INTERVAL_CT
FROM SomeTable
WHERE DATETIME >= DATEADD(mi, -5, GETDATE())
于 2013-05-31T22:16:23.590 回答
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)
   ;

退出;

于 2013-06-01T14:36:16.013 回答
0

要获取您将使用的交易数量

SELECT COUNT(*)
FROM YourTransactionTable
WHERE [DATETIME] >= DATEADD(MINUTE, -5, GETDATE())

正如 Rob 在他的评论中提到的那样,您的查询中没有 FROM TableName 。您必须在查询中提及您从哪个表中选择数据。

于 2013-05-31T22:16:58.530 回答