【问题标题】:Find Total by weekly按周查找总计
【发布时间】:2011-12-15 09:52:51
【问题描述】:

我有一张表 table,其中包含 datetotal 列。

如何将过去 20 周内 total 列的 sum 按周聚合到 sysdate

【问题讨论】:

  • 为什么这个标签是 Oracle 和 MySQL?你想为两个不同的 RDBMS 做这件事吗?
  • “日期”列的数据类型是什么?它是 VARCHAR 还是 DATE 还是 TIMESTAMP?
  • 其实我需要从Oracle来做

标签: sql oracle plsql oracle11g


【解决方案1】:
select trunc(date,'D'), sum(total)
from table
where date >= trunc(sysdate - 20*7, 'D')
group by trunc(date,'D')
order by 1

【讨论】:

  • 按周对日期进行分组的方法有多种。 WWWIW 将产生不同的日期,但每周的聚合不会不同。
【解决方案2】:
SELECT *, CONCAT(YEAR(`sysdate`), '/', WEEK(`sysdate`)) AS `year_week`
FROM `table`
GROUP BY `year_week`
ORDER BY `year_week` DESC
LIMIT 20;

【讨论】:

  • 您还需要一个 ORDER BY 才能获得“过去 20 周”。
  • 收到此错误 ORA-00923: FROM 关键字未在预期位置找到
  • 我在您的问题中没有看到任何类型的 Oracle。这是一个常见的 SQL。
猜你喜欢
  • 1970-01-01
  • 2018-08-15
  • 1970-01-01
  • 1970-01-01
  • 2010-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多