Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql计数除以计数_Sql_Postgresql_Date_Count_Sum - Fatal编程技术网

Postgresql计数除以计数

Postgresql计数除以计数,sql,postgresql,date,count,sum,Sql,Postgresql,Date,Count,Sum,我正在努力获得一个销售成功率每月在城市如果迈阿密。我拥有的变量有:通话id、通话日期、城市和通话状态(销售或不销售)。成功率列中有0,这是语法错误还是数据类型错误?代码是使用PostgreSQL编写的 select date_trunc('month', call_date)::DATE as date, count(c.id) FILTER (WHERE c.status='sale') as success_cnt, count(c.id) as all_cnt,

我正在努力获得一个销售成功率每月在城市如果迈阿密。我拥有的变量有:通话id、通话日期、城市和通话状态(销售或不销售)。成功率列中有0,这是语法错误还是数据类型错误?代码是使用PostgreSQL编写的

select date_trunc('month', call_date)::DATE as date,
       count(c.id) FILTER (WHERE c.status='sale') as success_cnt,
       count(c.id) as all_cnt,
       sum((count(c.id) FILTER (WHERE c.status='sale)'))/count(c.id)) over() as success_rate
       from user.call as c
where city='Miami')
group by 1;


我有点搞不清楚窗口功能是从哪里来的。对于成功率,您可以使用:

select date_trunc('month', call_date)::date as date,
       count(*) FILTER (where c.status = 'sale') as success_cnt,
       count(*) as all_cnt,
       avg( (c.status = 'sale')::int ) as success_rate
from user.call c
where city = 'Miami'
group by 1;

我有点搞不清楚窗口功能是从哪里来的。对于成功率,您可以使用:

select date_trunc('month', call_date)::date as date,
       count(*) FILTER (where c.status = 'sale') as success_cnt,
       count(*) as all_cnt,
       avg( (c.status = 'sale')::int ) as success_rate
from user.call c
where city = 'Miami'
group by 1;

count()。如果需要分数结果,则需要在除法之前将其中一个输入强制转换为分数类型。

count()
返回一个整数,当除法整数时,将得到一个整数结果,剩余部分将被丢弃。如果您想要分数结果,则需要在除法之前将其中一个输入转换为分数类型。

Hi,请您解释一下为什么要对字符串应用平均值函数,或者在这种情况下如何将该字符串转换为整数?将该字符串与值进行比较,生成布尔值。然后将该布尔值转换为整数(1=true,0=false)。取这些整数的平均值会产生成功率。我在average函数中添加了一个条件,现在它显示了错误:在“filter”处或附近出现语法错误这就是我添加的
avg((c.status='sale'filter(其中profession in('student','unember'))::int)
Try
avg((c.status='sale')::int)filter(职业在('student','unemployee'))
您好,您能解释一下为什么要对字符串应用平均函数,或者在这种情况下如何将字符串转换为整数吗?将字符串与值进行比较,生成一个布尔值。然后将该布尔值转换为整数(1=true,0=false)我在average函数中添加了一个条件,现在它显示了错误:在“filter”处或附近出现语法错误这就是我添加的
avg((c.status='sale'filter(其中profession in('student','unember'))::int)
Try
avg((c.status='sale')::int)filter(专业在(‘学生’、‘失业’)