用同一数据集中的相似行值替换缺失值(无连接)

Replace missing value with similar row values in same dataset (no joins)

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

示例:

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

期望的输出:

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

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

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

您可以使用MAX() window函数:

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