sql - 从不相关的不同表中选择 2 个值并使用结果 BigQuery 执行操作
问题描述
我需要一些有关 Google Big Query 中 SQL 的帮助。
我有两个表,A 和 B,我需要从 A 中选择一个值,从 B 中选择一个不相关的值,然后执行数学运算。
TABLE A
NAME | TIMESTAMP
------------------------------
xyz | 2013-01-02
abcd | 2013-01-02
efgh | 2012-03-01
TABLE B
CAMPAING | DATE | COST
-------------------------------------------
A | 2013-01-02 | 10
B | 2013-01-02 | 30
C | 2012-03-01 | 15
我设法做的事情:
SELECT (COUNT(DISTINCT NAME)
FROM `TABLE A`
WHERE DATE(TIMESTAMP) = '2013-01-02'
UNION DISTINCIT
SELECT (SUM(COST))
FROM `TABLE B`
WHERE date = '2013-01-02'
输出:
ROW | f0_
----------------
1 | 2
2 | 40
我需要做的是将这两个值分开...... 40/2
期望的输出:
ROW | f0_
----------------
1 | 20
任何人都可以帮助我实现这一目标吗?提前致谢!
解决方案
使用子查询:
SELECT a.cnt, b.cost, b.cost / a.cnt
FROM (SELECT (COUNT(DISTINCT NAME) as cnt
FROM `TABLE A`
WHERE DATE(TIMESTAMP) = '2013-01-02'
) a CROSS JOIN
(SELECT SUM(COST) as cost
FROM `TABLE B`
WHERE date = '2013-01-02'
) b;
推荐阅读
- node.js - NodeJs 403 提供的身份验证对 Resource AUTH HEADER ISSUE 无效
- javascript - 一段时间后如何解决 JS 承诺?
- android - 是否创建了多个 FirebaseMessagingService 实例来处理多个消息?
- php - 调用其他地方没有的变量
- node.js - Node.js 活动句柄突然上升
- java - 无论活动的生命周期如何,如何确保完成更新 firebase 数据库的过程
- html - 教程我遵循左“#”代替按钮中的链接。如果我想在实际服务器上托管它,我该如何解决?
- c# - .NET 4 中需要 MethodImpl(32) 吗?
- python - Pybind11:使用 for 循环使用 OpenMP 访问 python 对象
- android - Android 深度链接和启动模式