我有一张像
id type note
1 A ab cd
1 B cdef
1 A abd
1 A abcd
我想在删除空间后得到所有独特的音符,所以我的结果会是这样的
id type note
1 A ab cd
1 A abd
1 B cdef
因为删除空格后ab cd和abcd将是相同的。我正在使用 Postgres。请注意,id 列不是唯一的。
我有一张像
id type note
1 A ab cd
1 B cdef
1 A abd
1 A abcd
我想在删除空间后得到所有独特的音符,所以我的结果会是这样的
id type note
1 A ab cd
1 A abd
1 B cdef
因为删除空格后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