Google bigquery BigQuery:在命名列中使用IEEE_DIVIDE返回无法识别的名称?

Google bigquery BigQuery:在命名列中使用IEEE_DIVIDE返回无法识别的名称?,google-bigquery,Google Bigquery,我试图在BQ中使用IEEE_DIVIDE函数来避免由零错误进行div,并在新列中返回除法。分子为新用户计数,分母为用户计数。Num和Den都是计算计数 我得到以下错误: 无法识别的名称:新用户计数为[9:14] SELECT event_date, COUNT(DISTINCT IF( DATE(TIMESTAMP_MICROS(event_timestamp)) = DATE(TIMESTAMP_MICROS(user_first_touch_timestamp)), user_pseud

我试图在BQ中使用IEEE_DIVIDE函数来避免由零错误进行div,并在新列中返回除法。分子为新用户计数,分母为用户计数。Num和Den都是计算计数

我得到以下错误: 无法识别的名称:新用户计数为[9:14]

SELECT
event_date,
COUNT(DISTINCT IF(
DATE(TIMESTAMP_MICROS(event_timestamp)) = 
DATE(TIMESTAMP_MICROS(user_first_touch_timestamp)), 
user_pseudo_id, 
NULL
)) AS new_user_counts, 
COUNT(DISTINCT(user_pseudo_id)) AS user_counts,
IEEE_DIVIDE(new_user_counts, user_counts) AS percentage_new_users
FROM  `google-analytics-tables.*`
GROUP BY event_date
ORDER BY event_date ASC
有人能帮忙吗。谢谢。

您应该使用下面的

SELECT
  event_date, 
  new_user_counts, 
  user_counts,
  IEEE_DIVIDE(new_user_counts, user_counts) AS percentage_new_users
FROM (
SELECT
  event_date,
  COUNT(DISTINCT IF(
    DATE(TIMESTAMP_MICROS(event_timestamp)) = 
    DATE(TIMESTAMP_MICROS(user_first_touch_timestamp)), 
    user_pseudo_id, 
    NULL
  )) AS new_user_counts, 
  COUNT(DISTINCT(user_pseudo_id)) AS user_counts,
FROM  `google-analytics-tables.*`
GROUP BY event_date
ORDER BY event_date ASC
)
你应该在下面使用

SELECT
  event_date, 
  new_user_counts, 
  user_counts,
  IEEE_DIVIDE(new_user_counts, user_counts) AS percentage_new_users
FROM (
SELECT
  event_date,
  COUNT(DISTINCT IF(
    DATE(TIMESTAMP_MICROS(event_timestamp)) = 
    DATE(TIMESTAMP_MICROS(user_first_touch_timestamp)), 
    user_pseudo_id, 
    NULL
  )) AS new_user_counts, 
  COUNT(DISTINCT(user_pseudo_id)) AS user_counts,
FROM  `google-analytics-tables.*`
GROUP BY event_date
ORDER BY event_date ASC
)

不能使用同一选择中刚声明的别名列,需要使用子选择或重复聚合不能使用同一选择中刚声明的别名列,需要使用子选择或重复聚合