SQL Количество серверов с учетом случая, когда - PullRequest
1 голос
/ 14 июля 2020

Я использую запрос ниже, чтобы поместить значения навыков в соответствующие категории.

select distinct
case 
when skilldescript like 'cspace%' then 'CSPACE'
when skilldescript like 'gen%' then 'GENERAL'
when skilldescript like 'rope%' then 'ROPE'
when skilldescript like 'sct%' then 'SCT'
when skilldescript like 'trench%' then 'TRENCH'
end as Skill_Category
from skillTable

Запрос дает мне следующий результат:

Skill_Category
--------------
CSPACE
GENERAL
ROPE
SCT
TRENCH

То, что я сейчас пытаюсь выполнено sh - запрос должен возвращать количество различных наборов навыков, подпадающих под каждую категорию. Итак, результат должен быть:

Skill_Category   Count
----------------------
CSPACE             11
GENERAL             5
ROPE               20
SCT                10
TRENCH              3

Я пробовал использовать count () или sum (), но они выбирают только количество отдельных строк.

1 Ответ

1 голос
/ 14 июля 2020

Вы должны сгруппировать по выражению CASE и подсчитать:

select 
  case 
    when skilldescript like 'cspace%' then 'CSPACE'
    when skilldescript like 'gen%' then 'GENERAL'
    when skilldescript like 'rope%' then 'ROPE'
    when skilldescript like 'sct%' then 'SCT'
    when skilldescript like 'trench%' then 'TRENCH'
  end as Skill_Category,
  count(*) [Count]
from skillTable
group by case 
  when skilldescript like 'cspace%' then 'CSPACE'
  when skilldescript like 'gen%' then 'GENERAL'
  when skilldescript like 'rope%' then 'ROPE'
  when skilldescript like 'sct%' then 'SCT'
  when skilldescript like 'trench%' then 'TRENCH'
end

или:

select Skill_Category, count(*) [Count]
from (
  select 
    case 
      when skilldescript like 'cspace%' then 'CSPACE'
      when skilldescript like 'gen%' then 'GENERAL'
      when skilldescript like 'rope%' then 'ROPE'
      when skilldescript like 'sct%' then 'SCT'
      when skilldescript like 'trench%' then 'TRENCH'
    end as Skill_Category,
    count(*) [Count]
  from skillTable
) t
group by Skill_Category
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...