按行数和行数的分数结果对所有记录进行排序

时间:2015-09-28 01:51:58

标签: mysql sqlite

以下是我正在使用的表格。

enter image description here

我要做的是将每个emp_id的总行数计为total_count,然后获取每个emp_id的总行数,其中tos> 0为total_eligible,然后按total_eligible / total_count排序。

Here's the fiddle I am working with.

1 个答案:

答案 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小提琴。