Google bigquery 大查询-如何扩展每个公司列中的值,以使用现有值填充每个公司列中的所有空值?
我使用的表如下所示(底部提供了在您的环境中复制此表的查询): 在我的虚拟表中,Google bigquery 大查询-如何扩展每个公司列中的值,以使用现有值填充每个公司列中的所有空值?,google-bigquery,Google Bigquery,我使用的表如下所示(底部提供了在您的环境中复制此表的查询): 在我的虚拟表中,timestamp\u signup仅在每个id的1行上出现(它出现在显示公司注册的在线会话的行上)。如果一家公司从未注册,则没有timestamp\u signup值 我想做的是计算 每个团队总共有多少页面浏览量 在一个团队注册之前,每个团队有多少页面浏览量(timestamp_page_view试试这个: with mytable as ( SELECT 1 AS id, '2021-04-17 17:01:
timestamp\u signup
仅在每个id的1行上出现(它出现在显示公司注册的在线会话的行上)。如果一家公司从未注册,则没有timestamp\u signup
值
我想做的是计算
- 每个团队总共有多少页面浏览量
- 在一个团队注册之前,每个团队有多少页面浏览量(timestamp_page_view试试这个:
with mytable as ( SELECT 1 AS id, '2021-04-17 17:01:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 1 AS id, '2021-04-16 14:31:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 1 AS id, '2021-04-14 21:13:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 1 AS id, '2021-04-13 11:15:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 1 AS id, '2021-04-12 14:57:00' AS timestamp_page_view, '2021-04-12 14:59:00' AS timestamp_signup UNION ALL SELECT 1 AS id, '2021-04-09 11:33:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 1 AS id, '2021-04-05 14:44:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 1 AS id, '2021-03-31 17:12:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 2 AS id, '2021-03-31 17:13:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 2 AS id, '2021-03-31 12:45:00' AS timestamp_page_view, '2021-03-31 12:45:00' AS timestamp_signup UNION ALL SELECT 2 AS id, '2021-03-30 04:14:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 2 AS id, '2021-03-29 19:47:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 2 AS id, '2021-03-28 17:16:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 2 AS id, '2021-03-27 14:00:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 3 AS id, '2021-03-18 18:18:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 3 AS id, '2021-03-03 15:54:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 3 AS id, '2021-02-27 21:44:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 3 AS id, '2021-03-13 13:14:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 3 AS id, '2021-03-12 12:56:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 4 AS id, '2021-03-30 17:17:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 4 AS id, '2021-04-18 14:14:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 4 AS id, '2021-04-19 14:50:00' AS timestamp_page_view, '2021-04-19 14:54:00' AS timestamp_signup UNION ALL SELECT 4 AS id, '2021-04-20 17:18:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 4 AS id, '2021-03-30 15:56:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 4 AS id, '2021-03-03 09:18:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 4 AS id, '2021-03-29 10:10:00' AS timestamp_page_view, NULL AS timestamp_signup ) select id, countif(future_signup is not null) as views_before_signup, count(*) as total_views from ( select *, max(timestamp_signup) over (partition by id order by timestamp_page_view desc) as future_signup from mytable ) group by id
id total_views views_before_signup 1 4 8 2 5 6 3 0 5 4 6 7
SELECT id, COUNT(timestamp_page_view) AS total_views, SUM(CASE WHEN timestamp_page_view <= timestamp_signup THEN 1 ELSE 0 END) AS views_before_signups, FROM table_1 GROUP BY id
SELECT 1 AS id, '2021-04-17 17:01:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 1 AS id, '2021-04-16 14:31:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 1 AS id, '2021-04-14 21:13:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 1 AS id, '2021-04-13 11:15:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 1 AS id, '2021-04-12 14:57:00' AS timestamp_page_view, '2021-04-12 14:59:00' AS timestamp_signup UNION ALL SELECT 1 AS id, '2021-04-09 11:33:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 1 AS id, '2021-04-05 14:44:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 1 AS id, '2021-03-31 17:12:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 2 AS id, '2021-03-31 17:13:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 2 AS id, '2021-03-31 12:45:00' AS timestamp_page_view, '2021-03-31 12:45:00' AS timestamp_signup UNION ALL SELECT 2 AS id, '2021-03-30 04:14:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 2 AS id, '2021-03-29 19:47:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 2 AS id, '2021-03-28 17:16:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 2 AS id, '2021-03-27 14:00:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 3 AS id, '2021-03-18 18:18:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 3 AS id, '2021-03-03 15:54:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 3 AS id, '2021-02-27 21:44:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 3 AS id, '2021-03-13 13:14:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 3 AS id, '2021-03-12 12:56:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 4 AS id, '2021-03-30 17:17:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 4 AS id, '2021-04-18 14:14:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 4 AS id, '2021-04-19 14:50:00' AS timestamp_page_view, '2021-04-19 14:54:00' AS timestamp_signup UNION ALL SELECT 4 AS id, '2021-04-20 17:18:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 4 AS id, '2021-03-30 15:56:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 4 AS id, '2021-03-03 09:18:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 4 AS id, '2021-03-29 10:10:00' AS timestamp_page_view, NULL AS timestamp_signup
with mytable as ( SELECT 1 AS id, '2021-04-17 17:01:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 1 AS id, '2021-04-16 14:31:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 1 AS id, '2021-04-14 21:13:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 1 AS id, '2021-04-13 11:15:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 1 AS id, '2021-04-12 14:57:00' AS timestamp_page_view, '2021-04-12 14:59:00' AS timestamp_signup UNION ALL SELECT 1 AS id, '2021-04-09 11:33:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 1 AS id, '2021-04-05 14:44:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 1 AS id, '2021-03-31 17:12:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 2 AS id, '2021-03-31 17:13:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 2 AS id, '2021-03-31 12:45:00' AS timestamp_page_view, '2021-03-31 12:45:00' AS timestamp_signup UNION ALL SELECT 2 AS id, '2021-03-30 04:14:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 2 AS id, '2021-03-29 19:47:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 2 AS id, '2021-03-28 17:16:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 2 AS id, '2021-03-27 14:00:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 3 AS id, '2021-03-18 18:18:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 3 AS id, '2021-03-03 15:54:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 3 AS id, '2021-02-27 21:44:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 3 AS id, '2021-03-13 13:14:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 3 AS id, '2021-03-12 12:56:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 4 AS id, '2021-03-30 17:17:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 4 AS id, '2021-04-18 14:14:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 4 AS id, '2021-04-19 14:50:00' AS timestamp_page_view, '2021-04-19 14:54:00' AS timestamp_signup UNION ALL SELECT 4 AS id, '2021-04-20 17:18:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 4 AS id, '2021-03-30 15:56:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 4 AS id, '2021-03-03 09:18:00' AS timestamp_page_view, NULL AS timestamp_signup UNION ALL SELECT 4 AS id, '2021-03-29 10:10:00' AS timestamp_page_view, NULL AS timestamp_signup ) select id, countif(future_signup is not null) as views_before_signup, count(*) as total_views from ( select *, max(timestamp_signup) over (partition by id order by timestamp_page_view desc) as future_signup from mytable ) group by id