无法使用_TABLE_SUFFIX时如何进行多表查询?

问题描述 投票:0回答:1

我尝试跨多个表进行查询,但

_TABLE_SUFFIX
在我的情况下不起作用。

我想跨多个表进行计算,如下所列:

01_2021, 01_2022, 01_2023, 01_2024, 02_2021, 02_2022, 02_2023, 02_2024, 03_2020, 03_2021, 03_2022, 03_2024, 04_2020, 04_2021, 04_2022, 04_2023, 04_2024, 05_2020, 05_2021, 05_2022, 05_2023, 05_2024, 06_2020, 06_2021, 06_2022, 06_2023, 06_2024, 07_2020, 07_2021, 07_2022, 08_2023, 08_2024, 09_2021, 09_2022, 09_2023, 10_2020,  ... 12_2020, 12_2021, 12_2022, 12_2023.  

按月份命名的文件,从 2020 年 4 月到 2024 年 8 月。

我想按年份查询。然而,当我使用

_TABLE_SUFFIX
时:

create table `<data_set>.2021` as
select
  *,
  extract(time FROM started_at) as start_time,
  extract(day from started_at) as start_day,
  extract(month from started_at) as start_month,
  extract(year from started_at) as start_year,
  extract(dayofweek from started_at) as start_weekday,
  extract(time FROM ended_at) as end_time,
  extract(day from ended_at) as end_day,
  extract(month from ended_at) as end_month,
  extract(year from ended_at) as end_year,
  extract(dayofweek from ended_at) as end_weekday
from
  `<data_set>.*_2021`
WHERE
  _TABLE_SUFFIX BETWEEN '01' AND '12'

我希望按年份创建表格。但是,上面的代码出现错误

Not found: Table <...*_2021> was not found in location asia-southest1

我想它只有在有前缀时才有效(所以它是后缀:v lol),因为下面的代码有效。然而,下面的代码与我最初的目标不同。

FROM
  `<data_set>.01_*`
WHERE
  _TABLE_SUFFIX BETWEEN '2021' AND '2024'

我尝试用

*

替换总文件名
FROM
  `Cyclist_data.*`
WHERE
  _TABLE_SUFFIX BETWEEN '01_2021' AND '12_2021'

但是,我猜是因为BQ像图片一样排列文件。所以会跨越

01_2021
01_2022
03_2023
...在
12_2021
之前,我看到查询结果会包含2024年的数据。

file arrange Query Result have 2024

_TABLE_DATE_RANGE
在这种情况下也不起作用。尽管我遵循
说明
,但还是出现错误Expected "," or "]" but got ":"

from
  TABLE_DATE_RANGE([elemental-alloy-416508:Cyclist_data.], 
  TIMESTAMP('01_2021'), 
  TIMESTAMP('12_2021'))

我的情况有什么解决办法吗?

P/s: 我曾考虑过手动将所有文件的名称更改为

2021_01
,但这将是最后的选择。非常感谢大家的回答!!

sql google-bigquery
1个回答
0
投票

感觉就像一个类似于以下的查询:

FROM
  `<data_set>.*`
WHERE
  ENDS_WITH(_TABLE_SUFFIX, '_2021')

应该可以。 这应仅包括名称以“_2021”结尾的表。

如果这不起作用,请更新问题:

  1. 数据集中表名称的列表
  2. 您运行的确切 SQL 查询
  3. 查询的确切结果(包括任何警告或错误消息)
  4. 您所期望的与所获得的结果不同

参考文献

© www.soinside.com 2019 - 2024. All rights reserved.