首页 > 解决方案 > 除以返回计数的行

问题描述

我是 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

如何将最后一列分成第三列以获得第五列的收盘百分比?

标签: sqlpostgresqlselectgroup-bycount

解决方案


/您可以在 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

推荐阅读