You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JOIN查询结果保存至新表时INTO语法错误求助

问题

我的代码除INTO相关部分外均可正常运行,希望将JOIN查询的结果保存到新表,但报错:Syntax error: Expected end of input but got keyword INTO。已尝试使用INSERT INTO、INSERT、INTO,均出现语法错误,请问INSERT子句的正确位置应该在哪里?

原代码:

SELECT --want the results to contain these columns 
  activity.Id,
  activity.ActivityDate,
  steps.StepTotal,
  calories.Calories,
  activity.VeryActiveDistance,
  activity.ModeratelyActiveDistance,
  activity.LightActiveDistance LightlyActiveDistance, -- for consistent column naming --
  intensities.SedentaryActiveDistance,
  activity.VeryActiveMinutes,
  activity.FairlyActiveMinutes,
  activity.LightlyActiveMinutes,
  activity.SedentaryMinutes
INTO
  newtable
FROM
  `fitbit-data-exploration.FitBit_Tracker.daily activity` AS activity
JOIN
  `fitbit-data-exploration.FitBit_Tracker.daily intensities` AS intensities
ON
  activity.Id = intensities.Id
AND
  activity.ActivityDate = Intensities.ActivityDay
JOIN
  `fitbit-data-exploration.FitBit_Tracker.daily steps` AS steps
ON
  activity.Id = steps.Id
AND
  activity.ActivityDate = steps.ActivityDay
JOIN
  `fitbit-data-exploration.FitBit_Tracker.daily calories` AS calories
ON
  activity.Id = calories.Id 
AND
  activity.ActivityDate = calories.ActivityDay;
解决方案

从表名格式能判断你用的是BigQuery,它不支持SELECT ... INTO这种SQL语法,得换成以下两种写法:

1. 创建全新的表(表不存在时使用)

用CREATE TABLE ... AS SELECT语法,把要创建的表名放在语句最前端,后续跟你的查询逻辑:

CREATE TABLE `fitbit-data-exploration.FitBit_Tracker.newtable` AS
SELECT 
  activity.Id,
  activity.ActivityDate,
  steps.StepTotal,
  calories.Calories,
  activity.VeryActiveDistance,
  activity.ModeratelyActiveDistance,
  activity.LightActiveDistance LightlyActiveDistance,
  intensities.SedentaryActiveDistance,
  activity.VeryActiveMinutes,
  activity.FairlyActiveMinutes,
  activity.LightlyActiveMinutes,
  activity.SedentaryMinutes
FROM
  `fitbit-data-exploration.FitBit_Tracker.daily activity` AS activity
JOIN
  `fitbit-data-exploration.FitBit_Tracker.daily intensities` AS intensities
ON
  activity.Id = intensities.Id
AND
  activity.ActivityDate = Intensities.ActivityDay
JOIN
  `fitbit-data-exploration.FitBit_Tracker.daily steps` AS steps
ON
  activity.Id = steps.Id
AND
  activity.ActivityDate = steps.ActivityDay
JOIN
  `fitbit-data-exploration.FitBit_Tracker.daily calories` AS calories
ON
  activity.Id = calories.Id 
AND
  activity.ActivityDate = calories.ActivityDay;

注意要给新表指定完整的「项目-数据集-表名」路径,避免默认创建到非目标数据集。

2. 插入到已存在的表(表结构与查询结果匹配时使用)

如果newtable已经存在,用INSERT INTO ... SELECT语法,把INSERT INTO放在查询语句的最前面:

INSERT INTO `fitbit-data-exploration.FitBit_Tracker.newtable`
SELECT 
  activity.Id,
  activity.ActivityDate,
  steps.StepTotal,
  calories.Calories,
  activity.VeryActiveDistance,
  activity.ModeratelyActiveDistance,
  activity.LightActiveDistance LightlyActiveDistance,
  intensities.SedentaryActiveDistance,
  activity.VeryActiveMinutes,
  activity.FairlyActiveMinutes,
  activity.LightlyActiveMinutes,
  activity.SedentaryMinutes
FROM
  `fitbit-data-exploration.FitBit_Tracker.daily activity` AS activity
JOIN
  `fitbit-data-exploration.FitBit_Tracker.daily intensities` AS intensities
ON
  activity.Id = intensities.Id
AND
  activity.ActivityDate = Intensities.ActivityDay
JOIN
  `fitbit-data-exploration.FitBit_Tracker.daily steps` AS steps
ON
  activity.Id = steps.Id
AND
  activity.ActivityDate = steps.ActivityDay
JOIN
  `fitbit-data-exploration.FitBit_Tracker.daily calories` AS calories
ON
  activity.Id = calories.Id 
AND
  activity.ActivityDate = calories.ActivityDay;

内容的提问来源于stack exchange,提问作者Rayby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 16:43:19