【发布时间】:2017-01-23 16:36:44
【问题描述】:
我在 C# 中根据传入的参数动态构造一个查询。它根据我传入的内容正确构建查询,但我无法弄清楚为什么查询不断抛出Unexpected SELECT 错误。错误指的是此查询中的最后一个选择,紧随 group 和 order by。
这是我的程序输出的查询:
with allTables as (
SELECT
UNIX_SECONDS(TIMESTAMP(DATE)) as date,
SUM(CASE WHEN period = 7 THEN users END) AS days_07
FROM (
SELECT
activity.date AS DATE,
periods.period AS period,
COUNT(DISTINCT user) AS users
FROM (
SELECT
activity.date AS DATE,
periods.period AS period,
COUNT(DISTINCT user) AS users
FROM (
SELECT
DISTINCT DATE(TIMESTAMP_MICROS(event.timestamp_micros)) AS DATE,
user_dim.app_info.app_instance_id AS user
FROM `hidden.*`
CROSS JOIN
UNNEST(event_dim) AS event
) AS activity
CROSS JOIN (
SELECT
DATE(TIMESTAMP_MICROS(event.timestamp_micros)) AS DATE
FROM `hidden.*`
CROSS JOIN
UNNEST(event_dim) AS event
GROUP BY event.timestamp_micros
) AS dates
CROSS JOIN (
SELECT period FROM (SELECT 7 AS period)
) AS periods
WHERE
dates.date >= activity.date
AND
SAFE_CAST(FLOOR(DATE_DIFF(dates.date, activity.date, DAY)/periods.period) AS INT64) = 0
GROUP BY 1,2
) GROUP BY DATE ORDER BY DATE
) SELECT 'all apps' as target, date as datapoint_time, days_07 as datapoint_value FROM allTables
【问题讨论】:
-
为什么不直接将查询粘贴到 Web UI 并让 BigQuery 为您检查语法?
标签: sql google-bigquery