2013-05-31 29 views
-1

這是我使用SAS/SQL的第二天,所以請隨身攜帶。我在嘗試。 我目前有DATETIME,REGISTER_NUM,STORE_ID列。 我正在嘗試創建一個變量來計算當前事務的過去5分鐘內發生的事務數量。在一段時間內的交易次數

這是不正確的,但我真的需要幫助,我對我缺乏經驗感到灰心。

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

在SQL中,通常有一個FROM子句用於標識從中選擇數據的表。 FROM子句錯誤地丟失了嗎?還發布您收到的錯誤消息。 –

+0

我很困惑這一點。兩個幾乎相同的問題前(現在都刪除)我給你一個答案,這將工作。你爲什麼一直在發佈問題? – Joe

回答

1

也許您正在尋找這樣的事情:

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

要獲得交易的數量,你會使用

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

正如羅布在他的評論中提及了它,你不必查詢中的FROM TableName。你必須在你的查詢中提及你從哪個表中選擇你的數據。

0

DATEADDGETDATE不是SAS函數;您正在查找的等效功能爲INTNX,間隔爲DATETIME以獲取當前系統時間戳。因此,假設你有一個名爲MYDATA一個SAS數據集和一個名爲日期時間變量,這將在5分鐘時間返回的記錄數:

proc sql; 
    select count(*) as FIVE_MIN_INTERVALS /* SAS names begin with letters */ 
    from mydata 
    where datetime >= INTNX('MINUTE',DATETIME(),5) 
    ; 

退出;