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