繁体   English   中英

SQL 查询用最频繁的替换多次出现

[英]SQL query to replace multiple occurrences with the most frequent ones

我有一个products表,其中有两种语言的产品描述,一种是英语,一种是另一种语言。
比方说:

产品描述 Product_Desc_Alt
一种 A1
一种 A2
一种 A1
一种 A3
B1
B2
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
产品描述 碳纳米管
一种 3个
2个
C 1个

我想用最频繁出现的Product_Desc_Alt替换,所以例如我希望 output 是:

产品描述 Product_Desc_Alt
一种 A1
一种 A1
一种 A1
一种 A1
B2
B2
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
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM