通过删除/修剪空格,使用group by子句获取数据

时间:2016-06-30 12:47:42

标签: postgresql postgresql-9.1

我有一个这样的专栏:

Occupations
------------
Housewife
House wife
Housework
House work

我希望数据使用group by;

这里"家庭主妇"和#34;众议院的妻子"类似的数据只是两个词之间的空格差异;因为如果我们使用错误的组,它会产生不同的数据

我希望我的表格列像

Occupations
------------
Housewife
Housework

我们可以使用group by .....或其他任何方式从列中删除冗余来获取数据吗?

1 个答案:

答案 0 :(得分:1)

您可以使用函数translate()来消除字符串中的空格,例如

with the_data(occupation, amount) as (
    values
        ('Housewife', 1),
        ('House wife', 2),
        ('Housework', 3),
        ('House work', 4)
    )

select 
    translate(occupation, ' ', '') as occupation,
    sum(amount) as amount
from the_data
group by 1;

 occupation | amount 
------------+--------
 Housewife  |      3
 Housework  |      7
(2 rows)