如何使用SQL每天获得一定百分比的分类变量?

时间:2018-07-24 01:08:37

标签: sql sql-server

我一直坚持这一点,但我的最终目标是获取总体数据的负数,正数和中性百分比,并按日期(每天)以及类别进行分组。谢谢。

enter image description here

1 个答案:

答案 0 :(得分:1)

只需使用窗口功能:

select mlsentimentzone,
       (count(*) * 1.0 / sum(count(*)) over ()) as ratio
from t
group by mlsentimentzone;

或者,如果您希望按日期进行此操作,请使用条件聚合:

select date,
       avg(case when mlsentimentzone = 'negative' then 1.0 else 0.0 end) as negative,
       avg(case when mlsentimentzone = 'neutral' then 1.0 else 0.0 end) as neutral,
       avg(case when mlsentimentzone = 'positive' then 1.0 else 0.0 end) as positive
from t
group by date
order by date;