_TABLE_SUFFIX对子选择

时间:2019-12-13 17:39:12

标签: google-bigquery

我需要使用_TABLE_SUFFIX作为参数进入subselect

SELECT 
  A._TABLE_SUFFIX,
  (
    SELECT
      COUNT(*)
    FROM
      `analytics_202222094.events_*` AS B
    WHERE
      B._TABLE_SUFFIX = A._TABLE_SUFFIX
      AND B.event_name = 'session_start' 
  )
FROM `analytics_202222094.events_*` AS A 
GROUP BY A._TABLE_SUFFIX

2 个答案:

答案 0 :(得分:1)

以下是用于BigQuery标准SQL

SELECT 
  _TABLE_SUFFIX  AS table_suffix,
  COUNTIF(event_name = 'session_start')
FROM `analytics_202222094.events_*` 
GROUP BY _TABLE_SUFFIX

如您所见,您根本不需要在此处进行子查询-但在需要时-将别名用于下划线开头的保留字段名称,例如_TABLE_SUFFIX,_PARTITION,_TABLE_,_FILE_等。

答案 1 :(得分:0)

给它一个别名:

SELECT MAX(id), ts
FROM (
  SELECT *, _table_suffix ts
  FROM `fh-bigquery.stackoverflow_archive.201703_*` 
) a
GROUP BY 2

否则,您会收到错误消息

  

无效的字段名称“ _table_suffix”。字段名称不允许以(不区分大小写)前缀_PARTITION, TABLE FILE 和_ROW_TIMESTAMP

开头