如何在一周中的每一天的每一天中创建空条目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在一周中的每一天的每一天中创建空条目相关的知识,希望对你有一定的参考价值。

我有一个包含一些事件数据的表。它看起来如下:

+------+-----------+--------+
| Week |   day     | value1 |
+------+-----------+--------+
|    2 | Monday    |      5 |
|    2 | Thursday  |      2 |
|    2 | Sunday    |      1 |
|    3 | Monday    |      2 |
|    3 | Tuesday   |      2 |
|    3 | Wednesday |      0 |
|    3 | Thursday  |      9 |
|    9 | Friday    |      3 |
+------+-----------+--------+

现在,我希望此表中的每个星期都有星期几的条目。如果不存在,则必须将其填充。像这样:

+------+-----------+--------+
| Week |   day     | value1 |
+------+-----------+--------+
|    2 | Monday    | 5      |
|    2 | Tuesday   | Null   |
|    2 | Wednesday | Null   |
|    2 | Thursday  | 2      |
|    2 | Friday    | Null   |
|    2 | Saturday  | Null   |
|    2 | Sunday    | 1      |
+------+-----------+--------+

到目前为止,我尝试将表中的所有星期都用起来,将它们与一周中所有天的列表交叉连接,然后将其正确地连接到一周中,但没有成功。

进行此整个练习的原因是,我可以获得一个数值为每天的几周之间差异的增量表。

感谢所有技巧!

答案

假设表中每天都有值,则:

select w.week, d.day, t.value1
from (select distinct week from t) w cross join
     (select distinct day from t) d left join
     t
     on t.week = w.week and t.day = d.day;

以上是关于如何在一周中的每一天的每一天中创建空条目的主要内容,如果未能解决你的问题,请参考以下文章

我有 8 年的日常数据。我想绘制一周中的每一天、一年中的每周和一年中的每个月的所有值。我怎么做?

MySQL - 计算一周中每一天但每个发件人的所有行

如何获取一周中每一天的密码?

在几天的持续时间内,选择表格中记录的每一天的最后一个条目

遍历数据框并绘制每一列

在 ionic v1 中的每一天的特定时间发送通知