首页 > 解决方案 > SQL - 计算所有文件扩展名

问题描述

我希望有人可以帮助我。我有一个表格,可以在其中获取文件 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

谢谢

标签: mysqlsql

解决方案


使用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;

推荐阅读