暂无图片
Oracle如何把某个月的数据平均分配到不同日子?
我来答
分享
暂无图片 匿名用户
Oracle如何把某个月的数据平均分配到不同日子?

Oracle如何把某个月的数据平均分配到不同日子?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
Thomas

如果总记录数是35条,该月有31天,那无论怎么分,也不可能均分,除非记录数正好是62,93等31天的倍数。那么,只能是随机分配,看上去差不多即可。不知道是不是这样的要求。

SQL> select count(*) from dba_objects;

COUNT(*)
----------
99700

将DBA_OBJECTS内容存入test表
SQL> create table test as select object_id from dba_objects;

Table created.

test加字段create_date, 以后要随机分配,就分配到该字段上

SQL> alter table test add create_date date;

Table altered.

比如分配到8月的每一天吧:
SQL> update test set create_date=trunc(to_date('2023-07-31','yyyy-mm-dd'))+round(dbms_random.value(0.5,31.49999999));

99700 rows updated.

SQL> commit;

SQL> select to_char(create_date,'yyyy-mm-dd'),count(*) from test group by to_char(create_date,'yyyy-mm-dd') order by 1;

TO_CHAR(CREATE_DATE,'YYYY-MM-D COUNT(*)
------------------------------ ----------
2023-08-01 3182
2023-08-02 3162
2023-08-03 3228
2023-08-04 3166
2023-08-05 3177
2023-08-06 3312
2023-08-07 3179
2023-08-08 3240
2023-08-09 3233
2023-08-10 3264
2023-08-11 3216
2023-08-12 3157
2023-08-13 3244
2023-08-14 3313
2023-08-15 3194
2023-08-16 3239
2023-08-17 3294
2023-08-18 3164
2023-08-19 3268
2023-08-20 3178
2023-08-21 3166
2023-08-22 3209
2023-08-23 3174
2023-08-24 3228
2023-08-25 3161
2023-08-26 3361
2023-08-27 3225
2023-08-28 3062
2023-08-29 3296
2023-08-30 3201
2023-08-31 3207

31 rows selected. 

似乎大概每天的条数差不多。

暂无图片 评论
暂无图片 有用 2
打赏 0
回答交流
Markdown


请输入正文
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏