sql - 大数据条件聚合
问题描述
我有一个快速的问题,我试图敲打我的头,但没有成功:
假设我有下表:
+-----+----------------+-----+-------+------+------+------+-------+
| Row | Promotion Name | Day | Month | Year | SENT | Open | Click |
+-----+----------------+-----+-------+------+------+------+-------+
| 1 | Email_New_V1 | 1 | 2 | 2019 | 3 | 2 | 1 |
| 2 | Email_New_V2 | 1 | 2 | 2019 | 5 | 2 | 1 |
| 3 | Email_New_V3 | 2 | 2 | 2019 | 4 | 2 | 1 |
+-----+----------------+-----+-------+------+------+------+-------+
基本上,我想要每天(第 1 天、第 2 天等)和每月(第 1 个月、第 2 个月等)的 SENT、OPEN 和 CLICK 总数......由促销中的前几个字符聚合姓名(Email_New%)
基本上,我会有这个:
+----------------+-----+-------+------+------+------+-------+
| Promotion Name | Day | Month | Year | SENT | Open | Click |
+----------------+-----+-------+------+------+------+-------+
| Email_New | 1 | 2 | 2019 | 12 | 6 | 3 |
+----------------+-----+-------+------+------+------+-------+
我尝试使用 SUBSTR 选择前几个单词,但无济于事。我可以给小费吗?
非常感谢!
解决方案
下面是 BigQuery 标准 SQL 的示例
#standardSQL
WITH `project.dataset.table` AS (
SELECT 'Email_New_V1' promotion_name, 1 day, 2 month, 2019 year, 3 sent, 2 open, 1 click UNION ALL
SELECT 'Email_New_V2', 1, 2, 2019, 5, 2, 1 UNION ALL
SELECT 'Email_New_V3', 2, 2, 2019, 4, 2, 1 UNION ALL
SELECT 'Email_Old_V1', 1, 2, 2019, 1, 2, 3 UNION ALL
SELECT 'Email_Old_V2', 1, 2, 2019, 4, 5, 6
), promotions AS (
SELECT 'Email_New' promotion_name UNION ALL
SELECT 'Email_Old'
)
SELECT p.promotion_name,
day, month, year,
SUM(sent) sent,
SUM(open) open,
SUM(click) click
FROM `project.dataset.table` t
JOIN promotions p
ON STARTS_WITH(t.promotion_name, p.promotion_name)
GROUP BY promotion_name, day, month, year
带输出
Row promotion_name day month year sent open click
1 Email_New 1 2 2019 8 4 2
2 Email_New 2 2 2019 4 2 1
3 Email_Old 1 2 2019 5 7 9
推荐阅读
- python - 使用 numpy 进行快速元素节点平均
- unix - 如何在 UNIX 中通过密件抄送发送邮件
- list - Prolog:将大小为 N 的列表拆分为两个已知大小为 K 和 NK 的列表
- c# - 程序 * 不包含适用于入口点的静态“Main”方法
- c# - Visual Studio 测试任务:测试程序集通配符格式
- javascript - 我的 JSON 不实用,我想更改它,我该怎么做?
- android - 突出显示 GridView 上的选定项目
- c++ - 带有backstrace的c ++异常不打印调用者函数详细信息
- c# - 如何自动关闭 uwp 应用程序
- php - SQL查询输出正确,但是用php编写的程序无法显示结果