Как посчитать идентификаторы по двум отдельным столбцам в SQL - PullRequest
0 голосов
/ 22 июня 2019

У меня есть таблица, которая содержит два разных столбца: a_id и b_id.

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

Я начал писать грубый запрос, чтобы попытаться решить эту проблему, но понял, что выбор отличного является более сложным, чем я думал. Я также создаю один столбец с именем total_jobs и думаю, что должно быть два столбца: total jobs created и total jobs completed на основе job_created_date и job_completed_date. Вид здесь потерян.

SELECT
job_created_date,
job_completed_date,
category,
   COUNT(
        SELECT 
        DISTINCT a_id, b_id
        FROM my_data_table
    ) AS total_jobs

FROM my_data_table
WHERE
    ds BETWEEN '<DATEID-8>' AND '<DATEID-1>'
GROUP BY
    1, 2, 3, 4

Я хочу, чтобы выходные данные помогли мне создать гистограмму с датами на оси x и сгруппированными столбцами, представляющими количество заданий, созданных в этот день, и число оставшихся заданий, которые должны быть выполнены в этот день.

1 Ответ

0 голосов
/ 22 июня 2019

Я не знаю, как выглядят ваши данные, но я могу предположить, что у вас есть одна строка для каждого задания, и job_completed_date не является NULL для завершенных заданий.

Если это так, выможно сделать:

SELECT t.*,
       COUNT(*) OVER () as total_jobs,
       COUNT(job_complete) as total_completed_jobs
FROM my_data_table t
WHERE t.ds BETWEEN '<DATEID-8>' AND '<DATEID-1>';
...