为数据集中存在的所有不同的 column2 值填充缺失的 column1 值

丹尼斯

表 t 如下所示:

+-----+------+-------+
| key | week | value |
+-----+------+-------+
|   1 |    1 |    10 |
|   1 |    2 |    20 |
|   2 |    1 |   100 |
|   2 |    2 |   200 |
|   2 |    3 |   300 |
+-----+------+-------+

key2具有value存在用于week1,2,和3中,但key1仅具有valueweek1和2的

我如何编写一个查询来添加一行key1 和一个缺失的week3,默认value值为 0,以便结果表如下所示:

+-----+------+-------+
| key | week | value |
+-----+------+-------+
|   1 |    1 |    10 |
|   1 |    2 |    20 |
|   1 |    3 |     0 |
|   2 |    1 |   100 |
|   2 |    2 |   200 |
|   2 |    3 |   300 |
+-----+------+-------+

我尝试了交叉连接和完全外部连接(在不同的周列表中),但不知何故未能达到所需的解决方案

戈登·利诺夫

使用 across join生成所有行,然后left join引入值:

select k.key, w.week, coalesce(t.value, 0) as value
from (select distinct key from t) k cross join
     (select distinct week from t) w left join
     t
     on t.key = k.key and t.week = w.week
order by k.key, w.week;

这使用原始表作为键和周的来源。如果您有其他包含此信息的表,则可以使用它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据 column1 的值将 column1 的值设置为 column2 的值

在 R 中的数据框中,Column1 的值是 Column2 的最小值

在 PostgresQL 表中,如何使用 column1 中的所有值创建列,而 column1 中当前行的值出现在 column2 中?

如何使用当前行的 column2 值填充来自所有行的 column1 中所有值的列表的 PostgresQL 列

获取具有column1最小值和column2最大值大于100 DataFram的行

通过用0填充表来确保Column1的每个不同值都有一个包含Column2的每个不同值的行-Postgresql

如何选择具有不同日期条件的同一列值并在同一查询中显示为column1和column2

在 PostgresQL 表中,如何创建包含 column1 中所有出现在 column2 中的所有值的列,以便出现该行的 column1 值?

将mysql中的值从column1复制到column2

SQL根据两行中column1中的值选择一column2

SQL:在column1上选择不重复,并汇总合并行的column2值

如何构造单个 JSON,其中 column1 是属性名称,column2 是值

Python Sqlite-如何选择Column1或Column2等于List中的值的位置?

比较 column1(选项集)与 SSIS 中 column2(查找)中的设置值

R:对于 dfs 列表,过滤 Column1 中的值,以提取另一个 Column2 的平均值和 SD(仅在 Column1 中具有过滤值的行)

Informatica映射以将column1 position1的值分配给column2 position2

在熊猫中将Column1值转换为标头,将column2转换为其值

创建一个聚合函数,该函数返回与最大column2值关联的column1值

Oracle:如何用column1中的确切值搜索和替换column2中的文本?

根据另一列中的值按 column1 或 column2 对行进行排序

pandas :读取 xlsx 文件以使用 column1 作为键和 column2 作为值进行字典

如何选择column2,但如果column2为零,则选择select column1

如果它们都具有相同的column2值,则从column1动态获取值并将其分配给同一列中的NaN值

删除 column2 的重复项,然后根据 column1 将它们分组,然后将 sql 中 column3 的值相加

熊猫,对于 column1 的每个唯一值,我想计算它为 column2 的每个唯一值出现的次数

如何找到其他列(column2)的行值,如果我的行值在另一行的同一列(column1)中

在column1中查找确切的单元格值,并将column2的值连接到新列中

如何将listA column1值匹配和替换为与ListB column1匹配的ListB column2值,就像我们在vlookup中所做的一样

如何过滤我的组/集群以仅保留具有不同column2值的那些?