如何从SQL生成大量表?

时间:2018-06-08 03:00:16

标签: sql google-bigquery

我有以下表格:

表名:美国州 - 具有以下格式的50个表

  1. 列:州,邮政编码,地址
  2. 邮政编码不是唯一的
  3. 我想用一个SQL查询执行以下操作:

    1. 生成一个唯一邮政编码列表~40,000
    2. 创建包含邮政编码〜40,000
    3. 名称的表格 每个表中的
    4. - 仅包含具有相应邮政编码的记录
    5. 列:州,邮政编码,地址
    6. 如何创建这样的SQL查询是最有效和最便宜的方法来创建所有这些表?

1 个答案:

答案 0 :(得分:2)

使用当前功能,您可以做几个“作弊”:

  • 定义从zipcode到日期的线性转换。例如,DATE_ADD('1980-01-01',INTERVAL zipcode DAYS)
  • 创建分区表 - 将该合成日期用作分区。
  • 编写一个查询,将所有数据插入该表SELECT *, synthetic_date(zipcode) FROM ``tables*``
  • 现在你有一个分区表,每个分区只包含每个邮政编码的数据!成本是线性的,只需扫描一次所有数据。
  • 如果您愿意,现在您可以将每个分区复制到一个新表 - 免费(但要注意每日配额)。见https://cloud.google.com/bigquery/docs/managing-partitioned-tables#copying_a_single_partition