【问题标题】:Replace missing value with similar row values in same dataset (no joins)用相同数据集中的相似行值替换缺失值(无连接)
【发布时间】:2021-12-15 16:05:40
【问题描述】:

完成必要的表连接后,我想替换该列中已存在正确值的列中的缺失值。我想要的方法是“如果您在其他地方看到这一行的相同电子邮件,请获取相应的名称值并用它替换空字符串。”

例子:

email.       name 
abc@aol.com  john 
abc@aol.com  ''

期望的输出:

email.       name 
abc@aol.com  john 
abc@aol.com  john

我想用 john 填充 '' 因为查询知道他们的电子邮件完全一样。

假设这可以从 IFNULL 中受益,但欢迎任何帮助。

【问题讨论】:

  • 用您使用的数据库标记您的问题。
  • @forpas bigquery,所以 postgres?
  • 您要更新表还是选择查询?
  • 选择查询@forpas

标签: sql google-bigquery max window-functions missing-data


【解决方案1】:

可以使用MAX()窗口函数:

SELECT email,
       MAX(name) OVER (PARTITION BY email) name
FROM tablename;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-18
    • 2019-09-26
    • 1970-01-01
    • 2019-06-16
    • 1970-01-01
    • 1970-01-01
    • 2019-09-17
    相关资源
    最近更新 更多