Подтвердить что ты не робот

Подсчет на основе условия в SQL Server

Кто-нибудь знает, как я могу сделать счет в SQL Server на основе условия.

Пример:

Как я могу выполнить подсчет столбцов для записей с именем "система" и итоговые записи caseid в таблице?

Таблица клиентов

userid     caseid     name
1          100        alan
1          101        alan
1          102        amy
1          103        system
1          104        ken
1          105        ken
1          106        system  

Результат будет отображаться следующим образом:

UseeID    TotalcaseID    TotalRecordsWithSystem
1         7              2
4b9b3361

Ответ 1

Используйте SUM/CASE...

SELECT
    COUNT(*),  --total
    SUM(CASE WHEN name = 'system' THEN 1 ELSE 0 END) --conditional
FROM
    myTable

Ответ 2

Я думаю, он хотел получить идентификатор пользователя в результатах

SELECT 
    userid,
    COUNT(*) as TotalcaseID, --total 
    SUM(CASE WHEN name = 'system' THEN 1 ELSE 0 END) as TotalRecordsWithSystem  
FROM 
    myTable 
group by userid

Ответ 3

select
userid,
count('x') as TotalCaseID,
count(case when name = 'system' then 'x' else null end) as TotalRecordsWithSystem
from CustomerTable
group by userid