【发布时间】:2018-11-01 15:54:39
【问题描述】:
我有一个包含 num_client、day、week 的表,我想计算每周的客户数量 这是表中的一些数据:
num_client, day, week
1 01/01/2018 1
2 01/01/2018 1
.
.
.
1 09/01/2018 2
3 10/01/2018 2
.
.
.
.
1 28/01/2018 5
1 01/02/2018 5
2 01/02/2018 5
5 01/02/2018 5
。 . . 等等……
我按功能对用户进行分组,一切正常。 问题是,当我尝试在聚合查询中添加一周中的月份时,有几个星期在太分开的月份中, 和 2018 年的第 5 周一样,它包括两个月,一月和二月。
所以我想到的是查看天数:如果第 5 周 2 月的天数比 1 月多,那么第 5 周的月份就是 2 月。 每年都是这样。 他们是否有任何动态功能可以在 oracle 中执行此操作?
【问题讨论】:
-
不,没有这样做的函数,你必须编写自定义函数或查询
-
过去几周我一直在尝试这样做,但我没有成功,你知道怎么做吗?
-
我确实知道——我已经研究和使用数据库 25 年了。这个网站不适合想要聘请顾问的人,但是,您需要对您所做的一些工作提出问题——人们不仅有兴趣为您编写它。告诉我你在过去几周尝试过的东西,我会告诉你为什么它不起作用或帮助你调试问题。
-
我给你一个提示。解决此问题的最简单方法是制作一个表格,其中包含一年中的每一天的一行和一个包含您要映射到的“周数”的列。那么“计算”就是一个简单的连接。
-
很好——那么你得到了你想要的。 :D