oracle,去重,多条件统计,语句怎么写

图片说明查询条件:
CASE WHEN v.calltype='1' THEN COUNT(DISTINCT v.callid) END num,
CASE WHEN v.isworktime='0' THEN COUNT(DISTINCT v.callid) END num1,
CASE WHEN v.isworktime='1' THEN COUNT(DISTINCT v.callid) END num2,
CASE WHEN v.inivrdt IS NULL AND (v.remark='2' OR v.remark='3') THEN COUNT(DISTINCT v.callid) END num1,
CASE WHEN v.inivrdt IS NOT NULL AND v.isworktime IS NOT NULL THEN COUNT(DISTINCT v.callid) END num3,

        这样语句怎么写

建议你分开统计。CASE WHEN后面的条件没有规律,因此要么在java端写代码统计,要么sql分开统计比较好实现。

补充下,你建议一个临时表,把符合条件的先查出后插入临时表,最后统计临时表也行。

把符合条件的数据放进虚表(也就是dual表)里,再对虚表进行统计

我也来学习下。数据库不是很精通

去查一下 distinct 这个函数

统计之前 将需要统计的数据去一下重