sql - 除以返回计数的行
问题描述
我是 Postgres 的新手,我想知道如何划分两列并将该值放入一个新列中,或者我目前正在使用的内容是否可行。我试图划分的两列已经由 Count 函数创建。
这是我当前的查询:
select w.publisher_id, w.sub_id_2, COUNT(w.contact_id), COUNT(e.edocs_signed_date)
from leads_last_90_days w
left join enrollments e on w.contact_id = e.contact_id
where w.sub_id is not null
group by w.publisher_id, w.sub_id_2
order by publisher_id desc
这就是我目前的结果:
publisher_id sub_id count count
"1481" "11" 148 4
"1481" "7" 8 0
"1481" "695" 209 6
"1481" "266" 5 1
"1481" "54" 95 2
如何将最后一列分成第三列以获得第五列的收盘百分比?
解决方案
/
您可以在 SQL中使用数学运算符(例如)。但是请注意,在 PostgreSQL 中将两个整数相除将导致整数除法,因此您需要使用强制转换运算符 ( ) 将它们(至少其中之一)强制转换为实数::
:
SELECT w.publisher_id,
w.sub_id_2,
COUNT(w.contact_id),
COUNT(e.edocs_signed_date)
COUNT(w.contact_id)::real / COUNT(e.edocs_signed_date) AS percentage
FROM leads_last_90_days w
LEFT JOIN enrollments e ON w.contact_id = e.contact_id
WHERE w.sub_id IS NOT NULL
GROUP BY w.publisher_id, w.sub_id_2
ORDER BY publisher_id DESC