Подсчет записей по нескольким условиям - PullRequest
0 голосов
/ 24 апреля 2018

Мой запрос - подсчитать количество транзакций, которые произошли в таблицах. Ниже мой запрос:

select tt.transaction_key, tt.description, t.mode, count(t.TransactionType) as Frequency
from transaction_names tt left join
     transaction_report_data t
     on tt.transaction_key = t.TransactionType and
        t.created >='2017-04-11' and t.created <= '2018-04-13'
group by tt.transaction_key, tt.description, t.mode;

Мне также нужен счетчик / частота для количества транзакций, которые были только успешными или имеют t.status = 'success'.

Пожалуйста, помогите, как я могу изменить это условие "где", чтобы также учитывать этот тип записей.

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 24 апреля 2018

Вы можете сделать случай с совокупностью, как показано ниже

select 
tt.transaction_key, 
tt.description, 
t.mode, 
count(t.TransactionType) as Frequency,
Sum(case when t.status='success' then 1 else 0 end) as SuccessfulTransactions
from transaction_names tt left join
     transaction_report_data t
     on tt.transaction_key = t.TransactionType and
        t.created >='2017-04-11' and t.created <= '2018-04-13'
group by tt.transaction_key, tt.description, t.mode;
0 голосов
/ 24 апреля 2018
select tt.transaction_key, tt.description, t.mode, count(t.TransactionType) as Frequency
from transaction_names tt left join
     transaction_report_data t
     on tt.transaction_key = t.TransactionType and
        t.created >='2017-04-11' and t.created <= '2018-04-13'
group by tt.transaction_key, tt.description, t.mode, t.status
having t.status = 'success'
0 голосов
/ 24 апреля 2018

Попробуйте это

SELECT
    tt.transaction_key,
    tt.[Description],
    t.mode,
    COUNT(t.TransactionType) AS Frequency,
    Success = SUM(CASE WHEN T.[Status]='Success' THEN 1 ELSE 0 END)
    FROM transaction_names tt
       LEFT JOIN transaction_report_data t 
          ON tt.transaction_key = t.TransactionType
             AND t.created >= '2017-04-11'
             AND t.created <= '2018-04-13'
       GROUP BY 
          tt.transaction_key,
          tt.[Description],
          t.mode;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...