SQL 查询用最常见的替换多次出现

SQL query to replace multiple occurrences with the most frequent ones

我有一个 products table,它有两种语言的产品描述,一种是英语,一种是其他语言。
比方说:

Product_Desc Product_Desc_Alt
A A1
A A2
A A1
A A3
B B1
B B2
B B2
C C1

如果我执行 GROUP BY 语句,则同一产品会出现多种替代语言。那么,让我们说:

SELECT Product_Desc, COUNT(DISTINCT Product_Desc_Alt) AS CNT
FROM products
GROUP BY Product_Desc
ORDER BY CNT DESC
Product_Desc CNT
A 3
B 2
C 1

我想用出现次数最多的 Product_Desc_Alt 次替换, 所以例如我希望输出为:

Product_Desc Product_Desc_Alt
A A1
A A1
A A1
A A1
B B2
B B2
B B2
C C1

显然,如果一个产品只有一个更改语言描述,就保留那个。

可能有很多方法可以做到这一点,但我想不出一个。

我正在使用 Azure Databricks,因此 PySpark 也可能会发生这种情况,但我有兴趣以 SQL 方式进行此操作。
非常感谢!

你是这个意思吗?

UPDATE products
SET Product_Desc_Alt = (
  SELECT TOP 1 Product_Desc_Alt
  FROM   products P2
  WHERE  P2.Product_Desc = products.Product_Desc
  GROUP BY Product_Desc_Alt
  ORDER BY COUNT(*) DESC
)