我有一个包含120k行(包括文件名)的继承表。整个文件名中大约有12,000个子字符串被复制。每个文件名都是根据一个奇怪的命名约定来命名的,但它们都基于相同的子字符串。 例如,一个可能称为“ apple-5pxl.mov”,另一个可能称为“ c-5pxl.mov”,另一个可能称为“ 76_5pxl.mov” ...而其他可能称为“ apple-234x.mov”, '76_234x.mov'
如何返回不同子字符串数的计数和列表?在上面的示例中,将有2个(5xpl.mov和234x.mov)
答案 0 :(得分:1)
我认为您可以将substring()
与模式参数一起使用:
select substring(filename from '[^-_]*$') as pat, count(*)
from t
group by pat;
该模式似乎是字符串末尾用连字符或下划线分隔的任何内容。