Для удобства чтения я хотел бы изменить приведенный ниже оператор. Есть ли способ извлечь оператор CASE
, поэтому я могу использовать его несколько раз, не выписывая его каждый раз?Упрощение выражения CASE, используемого несколько раз
select
mturk_worker.notes,
worker_id,
count(worker_id) answers,
count(episode_has_accepted_imdb_url) scored,
sum(case when isnull(imdb_url) and isnull(accepted_imdb_url) then 1
when imdb_url = accepted_imdb_url then 1
else 0 end) correct,
100 * (sum(case when isnull(imdb_url) and isnull(accepted_imdb_url) then 1
when imdb_url = accepted_imdb_url then 1
else 0 end)
/count(episode_has_accepted_imdb_url) ) percentage
from
mturk_completion
inner join mturk_worker using (worker_id)
where
timestamp > '2015-02-01'
group by
worker_id
order by
percentage desc,
correct desc
Для этого используйте tsql. – Rigel1121