具有差异的sql组字符串

2w2cym1i  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(300)

我有一个sql查询:

select u.name, c.name
from user u
JOIN customer c on u.id = c.id
group by (u.name, c.join_date)

这很好,但是user表中的一些名称写得不同,但是有1到2个字符的不同。如何扩展此查询以便将诸如mary kate、mary kate和mary kate这样的字符串分组在一起?

a8jjtwal

a8jjtwal1#

我不太懂你的代码,因为 select 条件和 group by 条件不匹配。你的问题是:
如何扩展此查询以便将诸如mary kate、mary kate和mary kate这样的字符串分组在一起?
假设查询与问题匹配。说:

select u.name, count(*)
from user u
group by u.name;

然后根据您的示例,您只能对名称中的字符进行聚合。这表明 regexp_replace() 要替换非字符:

select min(u.name), count(*)
from user u
group by regexp_replace(u.name, '[^[:alpha:]]', '', 'g');

如果你对 join 然后问一个新问题。提供示例数据、所需结果,并清楚地解释您要做的事情。尽量避免语法错误的查询。

相关问题