GROUP BY client
и считать только случаи типа, использующего CASE
.Это может выглядеть примерно так:
SELECT current_date date,
client,
count(CASE
WHEN timestamp_step1 IS NULL THEN
1
END) count_new_case,
count(CASE
WHEN timestamp_step1 IS NOT NULL
AND timestamp_step2 IS NULL THEN
1
END) count_step1_case,
count(CASE
WHEN timestamp_step2 IS NOT NULL
AND timestamp_completed IS NULL THEN
1
END) count_step2_case,
count(CASE
WHEN timestamp_completed IS NOT NULL THEN
1
END) count_completed_case
FROM elbat
GROUP BY client;
Вы не указали точную логику, когда дело квалифицируется как новое, шаг 1 и т. Д., Поэтому мне пришлось угадать здесь.Возможно, вы захотите адаптировать это.