当前7天的SQL计数

时间:2013-12-12 15:21:20

标签: sql oracle

我想获得过去7天输入数据库的订单数量列表。我试过重复下面的内容,但它变成了一些关于格式不正确的错误信息,所以我想知道什么是正确的方法。

要获取当天的订单金额,请使用SELECT COUNT(order_number) FROM orders WHERE created = TO_CHAR(sysdate, 'DD-MON-YYYY');

我想要一张像这样的表:

Date        Total Orders
sysdate     500
sysdate-1   400
sysdate-2   300

等。在过去的7天里有可能吗?

2 个答案:

答案 0 :(得分:0)

我相信以下内容适合您:

Select created, count(ordernumber)
  From orders
 Where to_date(created, 'DD-MON-YYYY') between trunc(sysdate-7) and trunc(sysdate)
 Group by created
 Order by to_date(created, 'DD-MON-YYYY') desc

注意,如果您可以更改它,我会认真考虑使用DATE列创建。

答案 1 :(得分:0)

您应该已经提到了具体的错误。我猜创建的是一个日期字段,你试图将它与一个字符串进行比较。如果是这种情况,这里是需要的声明。 TRUNC从日期中删除时间部分。

SELECT TRUNC(created), COUNT(order_number)
FROM orders 
WHERE TRUNC(created) BETWEEN TRUNC(sysdate) - 6 AND TRUNC(sysdate)
GROUP BY TRUNC(created)
ORDER BY TRUNC(created);