sql - 为什么我不能在 SQL 中创建聚合平均日期差异列
问题描述
我想在 SQL 中为我正在使用的 AB 测试数据集创建平均日期差异列,但无论我使用什么最终都会出现错误消息。
我试图聚合表,但它没有用,我对 sql 还是很陌生,所以我很困惑!
SELECT
ab_group,
avg(datediff(install_date, conversion_date) as avg_install_2_purchase,
avg(datediff(assignment_date, conversion_date) as avg_assignment_to_purchase,
avg(count(purchases)/count(assignment_date)
from
table
group by ab_group
解决方案
为什么我们不使用子查询来使其更易于阅读/理解/调试?我的意思是,是的,它有点冗长,通常不是生产中的最佳选择,但它几乎总是有助于使事情变得明确、轮廓清晰且可读性强:
select
ab_group,
avg_install_to_purchase,
avg_assignment_to_purchase,
if(coalesce(assignment_dates, 0) = 0, 0.0, purchases/assignment_dates) as ratio from
(
select
ab_group,
avg(install_to_purchase) as avg_install_to_purchase,
avg(assignment_to_purchase) as avg_assignment_to_purchase,
count(purchases) as purchases,
count(assignment_date) as assignment_dates
from (
select
ab_group,
coalesce(abs(datediff(install_date, conversion_date, day)), 0) as install_to_purchase,
coalesce(abs(datediff(assignment_date, conversion_date, day)), 0) as assignment_to_purchase,
coalesce(purchases, 0) as purchases,
assignment_date
from `mydataset.mytable`
)
)
)
推荐阅读
- finder - afp 看不到 zfs 挂载的文件夹
- google-bigquery - Google Big Query 在表名中间使用通配符
- eclipse - 新计算机,Eclipse IDE 的解决问题
- sql-server - 为什么从自连接临时表更新真实表不起作用但使用真实表时它可以工作?
- python - 如何使用 bash 在文件更改时设置脚本 RELOAD/RESTART?
- python - tf.saved_model.simple_save 中的输入和输出是什么?
- amazon-web-services - 如何在 cloudformation yaml 文件中指定使用参数值,否则通过 FindInMap 使用默认值
- html - 将按钮上方的图片居中到不同的网页
- mysql - Alter 语句在 MySQl 中工作但在 MAriaDB 中不工作?
- python - Django 不在用户模型中存储密码字段