我有一張表,其中包含userids
列表和日期時間stamp
,用於執行事務處理。它看起來像如下:計數日期時間戳結果
UserId | Stamp
John11| 01/01/2013 01:15:27
我想返回的查詢,其顯示在一段時間內每個用戶有多少交易完成。
我試過了count
,但由於stamp
的時間部分,它計算每個毫秒而不是整體。
在此先感謝
我有一張表,其中包含userids
列表和日期時間stamp
,用於執行事務處理。它看起來像如下:計數日期時間戳結果
UserId | Stamp
John11| 01/01/2013 01:15:27
我想返回的查詢,其顯示在一段時間內每個用戶有多少交易完成。
我試過了count
,但由於stamp
的時間部分,它計算每個毫秒而不是整體。
在此先感謝
使用time_to_sec功能得到實際值。
Select count(UserId), UserId from table where time_to_sec(stamp) between
fromTime and toTime
-- fromTime and toTime are interval period
你的問題沒有指定你想要的時間,但這裏是一個月,你能適應其他時期的例子:
SELECT
(DATEPART(YEAR, Stamp) * 100) + RIGHT('0' + DATEPART(MONTH, Stamp), 2) AS month_group
,COUNT(*) AS count
FROM MyTable
GROUP BY
(DATEPART(YEAR, Stamp) * 100) + RIGHT('0' + DATEPART(MONTH, Stamp), 2)
或爲一個週期只能使用;
SELECT
COUNT(*) AS count
FROM MyTable
WHERE Stamp BETWEEN ? AND ?
select user_id,count(userid) cnt from table
where stamp between to_timestamp('01-01-2013 01:15:27', 'DD-MM-YYYY HH:MI:SS') and
to_timestamp('03-01-2013 12:15:27', 'DD-MM-YYYY HH:MI:SS')
group by user_id
根據您想怎麼辦計,這樣的事情應該工作。
計算每個用戶dd-mon-yyyy hh24:mi:ss的唯一出現次數。
SELECT userid
, count(distinct TO_CHAR(stamp, 'dd-mon-yyyy hh24:mi:ss'))
FROM MYTABLE
where stamp > to_date('16-03-2013','DD-MM-YYYY')
group by userid
計數行的量還行嗎?如果是的話,你可以嘗試「計數(1)」。 – 2013-03-18 11:26:31
在什麼時間段?一天?你已經嘗試了什麼? – codingbadger 2013-03-18 11:26:50
我試過to_char(table.DateTimeStamp,'DD-MM-YYYY')作爲戳記與 WHERE table.DateTimeStamp> = to_timestamp('01 -01-2013','DD-MM-YYYY') 和表。 DateTimeStamp <= to_timestamp('03 -01-2013','DD-MM-YYYY') 計數UserId – LaLa 2013-03-18 11:28:01