我希望有人能帮助我。 我有一个表,在其中可以获取文件ID和文件名。我的目标是获取每个文件扩展名的数量。
这是表格的示例:
FILEID FILENAME
1 file1.pdf
2 file2.png
3 file3.jpg
4 file4.pdf
5 file5.png
我正在尝试得到这样的东西
Extension Count
.pdf 2
.png 2
.jpg 1
我可以获取'。'之后的所有信息。使用以下查询,但我似乎无法获得计数
select SUBSTRING(filename,charindex('.',filename,1),5)
from FILES
谢谢
答案 0 :(得分:2)
使用substring_index()
:
select substring_index(filename, '.', -1) as suffix, count(*)
from files
group by suffix;
这不包括'.'
。如果需要的话,将其放回原处:
select concat('.', substring_index(filename, '.', -1)) as suffix, count(*)
from files
group by suffix;
答案 1 :(得分:0)
您可以将substring()
与instr()
函数一起使用:
select substring(filename,instr(filename,'.'),length(filename)) as extension,
count(1) as count
from files
group by extension
编辑:我意识到您正在使用MS-SQL,因此可以使用:
select substring(filename,charindex('.',filename,1),5) as extension,
count(1) as count
from files
group by substring(filename,charindex('.',filename,1),5);