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

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

Пример:

Как мне сделать подсчет столбцов для записей с именем 'system' и общим 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  

Результат будет отображаться, как показано ниже:

UserID    TotalCaseID    TotalRecordsWithSystem
1         7              2
43
задан KDhyne 4 January 2019 в 17:41
поделиться

2 ответа

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

SELECT
    COUNT(*),  --total
    SUM(CASE WHEN name = 'system' THEN 1 ELSE 0 END) --conditional
FROM
    myTable
106
ответ дан 26 November 2019 в 22:32
поделиться

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

SELECT 
    userid,
    COUNT(*) as TotalcaseID, --total 
    SUM(CASE WHEN name = 'system' THEN 1 ELSE 0 END) as TotalRecordsWithSystem  
FROM 
    myTable 
group by userid
11
ответ дан 26 November 2019 в 22:32
поделиться