如何在删除 space 并按 postgres 中的某些不同列分组后获得唯一值
How to get unique value after removing space and group by some different column in postgres
我有一个 table 喜欢
id type note
1 A ab cd
1 B cdef
1 A abd
1 A abcd
我想在删除 space 后得到所有独特的注释,所以我的结果将是这样的
id type note
1 A ab cd
1 A abd
1 B cdef
因为删除 space 后 ab cd 和 abcd 将相同。
我正在使用 Postgres。请注意,id 列不是唯一的。
这是经典的分组最大值,但您只需将其分组在表达式而不是列上
SELECT id, type, note FROM
(SELECT DISTINCT ON(replace(note,' ',''))
id
,type
,note
FROM table1
ORDER BY replace(note,' ','')
) AS q
由于您似乎正在使用 Rails(根据您的标签),您还可以使用 ActiveRecord 获取 note
的所有唯一实例,忽略任何空格:
WhateverModel.pluck("REPLACE(note, ' ', '')").uniq
我有一个 table 喜欢
id type note
1 A ab cd
1 B cdef
1 A abd
1 A abcd
我想在删除 space 后得到所有独特的注释,所以我的结果将是这样的
id type note
1 A ab cd
1 A abd
1 B cdef
因为删除 space 后 ab cd 和 abcd 将相同。 我正在使用 Postgres。请注意,id 列不是唯一的。
这是经典的分组最大值,但您只需将其分组在表达式而不是列上
SELECT id, type, note FROM
(SELECT DISTINCT ON(replace(note,' ',''))
id
,type
,note
FROM table1
ORDER BY replace(note,' ','')
) AS q
由于您似乎正在使用 Rails(根据您的标签),您还可以使用 ActiveRecord 获取 note
的所有唯一实例,忽略任何空格:
WhateverModel.pluck("REPLACE(note, ' ', '')").uniq