我写了这段代码
SELECT max(order)
FROM orders_table
GROUP BY UNIX_TIMESTAMP(timestamp) DIV 30 ;
Order是一列,我正尝试从名为orders_table的表中获取每30秒的最大值。我在这里找到别人程序的答案的最后一行代码。但是,尝试运行此代码时出现错误。
预先感谢
答案 0 :(得分:0)
您的查询使用MySQL语法。在Oracle服务器中,DIV
和UNIX_TIMESTAMP
都不存在。
要进行整数除法,您可以TRUNC
除法的结果。
要计算自1970年1月1日以来的秒数,可以使用以下表达式(因为Oracle在减去日期时以天数返回结果):
(date_column - TO_DATE('1970-01-01', 'yyyy-mm-dd')) * 60 *60 *24
您可能想要:
SELECT MAX(o.order)
FROM orders_table o
GROUP BY TRUNC(o.timestamp - TO_DATE('1970-01-01', 'yyyy-mm-dd')) / 30 )