Я смог написать запрос, чтобы найти медиану, используя следующую логику ниже, где у меня возникают проблемы, пытаясь понять логику. Может кто-то, пожалуйста, помогите мне понять, что происходит. Я получил код из предварительной книги sql.медиана в SQLusing abs
В частности, этот код будет работать как для нечетных, так и для четных чисел. Я пробовал код, и он работает, но мне очень любопытно понять логику.
select avg(sales) as median
from
(select g1.sales
from ga g1, ga g2
group by g1.sales
having sum(case when g1.sales = g2.sales then 1 ELSE 0 END) >= ABS(SUM(SIGN(g1.sales-g2.sales))))g3;