我正在查看运输数据的行,我希望能够操作“优步池”的条目数据。和UberPool'作为相同的过境方式。
我可以做什么,以便我的函数将两个不同拼写的所有表条目聚合到输出表中的一行?
答案 0 :(得分:1)
正如@jpw所说,这取决于您的数据,但从它的外观来看,您可以使用CASE EXPRESSION
子句中的GROUP BY
来执行此操作:
SELECT CASE t.name = 'Uber Pool' then 'UberPool' else t.name end as name,count(*)
FROM YourTable t
GROUP BY CASE t.name = 'Uber Pool' then 'UberPool' else t.name end
您没有标记您的RDBMS,但在其中一些中您可以从组中的select中指定列别名,这样看起来会更好。
SELECT CASE t.name = 'Uber Pool' then 'UberPool' else t.name end as new_name,count(*)
FROM YourTable t
GROUP BY new_name
答案 1 :(得分:1)
评论太长了。
您可以通过执行以下操作来删除空格并标准化字符串的大小写:
select min(t.name) as name, . . .
from t
group by lower(replace(t.name, ' ', ''))
这将检索其中一个匹配的名称作为第一列。您可能会发现这比列出一堆case
更容易使用。