簡體   English   中英

列名在 bigquery 中不明確

[英]Column name is ambiguous in bigquery

我正在實施以下解決方案: https ://stackoverflow.com/a/32663098/19903400

這是我從接受的答案中復制的代碼,而是使用我的數據源:

SELECT 
  date,
  SUM(CASE WHEN period = 7  THEN users END) as days_07,
  SUM(CASE WHEN period = 14 THEN users END) as days_14,
  SUM(CASE WHEN period = 30 THEN users END) as days_30
FROM (
  SELECT
    dates.date as date,  
    periods.period as period,
    EXACT_COUNT_DISTINCT(activity.user_pseudo_id) as users
  FROM `rayn-deen-app.analytics_317927526.events_*` as activity
  CROSS JOIN (SELECT  DATE_TRUNC(EXTRACT(DATE from TIMESTAMP_MICROS(event_timestamp)), DAY) as date FROM `rayn-deen-app.analytics_317927526.events_*` GROUP BY date) as dates
  CROSS JOIN (SELECT period FROM (SELECT 7 as period), 
                (SELECT 14 as period),(SELECT 30 as period)) as periods
  WHERE dates.date >= activity.date 
  AND INTEGER(FLOOR(DATEDIFF(dates.date, activity.date)/periods.period)) = 0
  GROUP BY 1,2
)
GROUP BY date
ORDER BY date DESC

但我收到以下錯誤:

Column name period is ambiguous at [13:22]

所以這里似乎是有問題的代碼片段:

CROSS JOIN (SELECT period FROM (SELECT 7 as period), 
                (SELECT 14 as period),(SELECT 30 as period)) as periods

如果目標是擁有一組固定的記錄,那么您可以將其替換為:

SELECT period FROM (SELECT 7 as period), 
                (SELECT 14 as period),(SELECT 30 as period)

有了這個:

SELECT period FROM (SELECT 7 as period UNION ALL 
                    SELECT 14 UNION ALL 
                    SELECT 30)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM