【发布时间】:2019-06-23 23:15:45
【问题描述】:
我一直在尝试理解 Coursera 上 BigQuery 课程的代码。查询如下所示
SELECT
CONCAT(fullVisitorId, CAST(visitID AS STRING)) AS unique_session_id,
sessionQualityDim,
SUM(productRevenue) AS transactions_revenue
FROM
transaction_table
WHERE sessionQualityDim > 60
GROUP BY unique_session_id, sessionQualityDim
我的问题是 SQL 语句的顺序将如何执行。主要是当对 unique_session_id(即两列之间的 CONCAT)进行 GROUP BY 时,“GROUP BY”如何知道计算出的 CONCAT 结果(unique_session_id)。据我所知,SELECT 语句将在最后运行。但在这种情况下,似乎第一个字段是使用 CONCAT 计算的,然后 group by 使用它进行分组。有人可以对此提供更多见解吗?
【问题讨论】:
-
通常
GROUP BY是运行的最后步骤之一(HAVING 和一些其他供应商特定的条款如下)。在阳光下的每个 RDBMS 上都是如此。
标签: sql google-bigquery