Разделите два специальных значения в одном столбце - PullRequest
0 голосов
/ 30 сентября 2019

я хочу два делить два значения из столбца, как показано ниже:

enter image description here

на самом деле я хочу разделить заблокированный вызов по попытке вызова и привести к проценту.

Я использовал код ниже, и ответ в порядке:

выберите раунд ((приведение (100 * (выберите количество (событие) как EventCount из dbo. ['New ST $'] где event = 'Blocked Call') какfloat)) / (приведение ((выберите count (event) как EventCount из dbo. ['New ST $'] где event = 'Call Attempt') как float)), 3) как 'BCR (%)'

Спасибо @ GMB

1 Ответ

0 голосов
/ 30 сентября 2019

Используя встроенные запросы:

SELECT 
    100.00 * (SELECT eventCount FROM mytable WHERE event = 'Blocked Call')
        / (SELECT eventCount FROM mytable WHERE event = 'Call Attempt')

Или используя агрегацию:

SELECT 
    100.00 * MAX(CASE WHEN event = 'Blocked Call' THEN eventCount END)
        / MAX(CASE WHEN event = 'Call Attempt' THEN eventCount END)
FROM mytable

Редактировать

Похоже, что данныето, что вы показали, уже является результатом агрегированного запроса. Вы можете получить ожидаемые результаты, напрямую запросив исходную таблицу, например:

SELECT 
    100.00 * SUM(CASE WHEN event = 'Blocked Call' THEN 1 ELSE 0 END)
        / SUM(CASE WHEN event = 'Call Attempt' THEN 1 ELSE 0 END)
FROM mytable
WHERE event IN ('Blocked Call', 'Call Attempt')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...