sql - Oracle SQL : Query results from previous X isoweeks () (where X might be > 52)

标签 sql oracle datetime week-number

如何调整此查询以显示之前(例如 61 周)?

select 
       to_char(order_date,'IYYY') as iso_year,
       to_char(order_date,'IW') as iso_week,
       sum(sale_amount)
from orders
where 
    to_char(order_date,'IW') <> to_char(SYSDATE) --exclude this week in progress
    and to_char(order_date,'IYYY') = 2010
group by 
         to_char(order_date,'IYYY')
         to_char(order_date,'IW')

我的第一直觉是去做

where 
    to_char(order_date,'IW') <> to_char(SYSDATE) --exclude this week in progress
    and to_char(order_date,'IYYY') >= to_char(order_date,'IW') - 61

我可以省略“2010”要求并将结果限制为 61 行吗?有更好的办法吗?

非常感谢任何为我指明正确方向的帮助!

最佳答案

你能这样做吗:

select 
       to_char(order_date,'IYYY') as iso_year,
       to_char(order_date,'IW') as iso_week,
       sum(sale_amount)
from orders
where order_date >= TRUNC(SYSDATE,'IW') - (61 * 7)
  and order_date < TRUNC(SYSDATE,'IW')
group by 
         to_char(order_date,'IYYY'),
         to_char(order_date,'IW')

关于sql - Oracle SQL : Query results from previous X isoweeks () (where X might be > 52),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2505822/

相关文章:

javascript - Sequelize 如何比较查询中日期的年份

reactjs - 如何使用react-datetime获取选定的日期?

sql - 将日期时间值转换为下限

sql - 哪个查询效率更高?内部联接与子查询?总计与有

php - 获取聊天数据并按接收者和发送者 ID 排序

c# - ODP .NET 获取 SYSREFCURSOR 输出。 {"Unsupported column datatype"} 错误

sql - 在 .sql 脚本中定义和使用变量

C# Oracle 表问题

c# - .Net 的 DateTime 方法是否能够识别闰秒?

MySQL Limit 和 Order Left Join