以下是我正在使用的表格。
我要做的是将每个emp_id的总行数计为total_count,然后获取每个emp_id的总行数,其中tos> 0为total_eligible,然后按total_eligible / total_count排序。
答案 0 :(得分:1)
您可以使用条件聚合执行此操作:
select emp_id, count(*) as total,
sum(case when tos > 0 then 1 else 0 end) as total_eligible,
avg(case when tos > 0 then 1.0 else 0 end) as total_eligible_ratio
from table t
group by emp_id
order by total_eligible * 1.0 / total;
Here是一个SQL小提琴。