我有一个像这样的桌子:
Clients Cities
1 NY
1 NY | WDC | LA
1 NY | WDC
2 LA
因此,我有不同城市的重复客户(顺序不一,但每行的长度不同)。我要为每个用户显示最长城市字符串。所以,我应该得到这样的东西:
Clients Cities
1 NY | WDC | LA
2 LA
我是SQL的初学者(我使用Spark SQL,但主要是同一件事),所以请您如何解决此问题? 谢谢!
答案 0 :(得分:3)
您可以使用max()
:
select client, max(cities)
from t
group by client;
然后,您应该修复数据模型,以便不要在字符串中存储城市列表。这不是将数据存储在关系数据库中的好方法。
答案 1 :(得分:0)
我认为您应该使用SELECT DISTINCT
语句处理该查询(在MYSQL中),
由于表中包含许多重复值,所以我希望它可以正常工作!
例如
SELECT DISTINCT city_name FROM cities;
然后继续。...这是我的提示,可以引导您获得理想的答案