SQL - подсчет всех расширений файлов - PullRequest
0 голосов
/ 27 сентября 2018

Я надеюсь, что кто-нибудь может мне помочь.У меня есть таблица, где я получаю идентификатор файла и имя файла.Моя цель - получить сумму каждого расширения файла.

Это пример таблицы:

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

Спасибо

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

вы можете использовать substring() с instr() функцией:

select substring(filename,instr(filename,'.'),length(filename)) as extension,
       count(1) as count
  from files
 group by extension

Rextester Demo для MySQL case

Редактировать : Я понял, что вы используете 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);

Rextester Demo для MS-Регистр SQL

0 голосов
/ 27 сентября 2018

Использование 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...