【发布时间】:2018-05-04 09:45:05
【问题描述】:
我有一个名为“Member_Details”的表,其中每个 member_ID 都有多条记录。例如,
我有另一个名为“BMI_Data”的表,如下所示。
目标是获取那些“Member_Details”中“BMI”小于“BMI_Data”表中“target_BMI”的成员的姓名,并将其插入一个名为“results”的新表中,其中包含“Member_ID、First_Name 和BMI”作为其架构。 此外,一个考虑因素是获取每个成员的“Member_Details”中可用的最新数据(基于日期),然后进行比较
上述场景的结果将是这样的。
我尝试使用以下查询
INSERT INTO results_table (Member_ID, First_Name, BMI)
select c.Member_ID, First_Name, BMI
from
(SELECT *, ROW_NUMBER() OVER (PARTITION BY Member_ID ORDER BY Date desc)
AS ROWNUM FROM Member_Details) x
JOIN
BMI_Data c ON x.Member_ID = c.Member_ID
where
x.BMI < c.Target_BMI
上面的查询没有获取最新的日期,只是加载了成员BMI小于target_BMI的所有记录。
请帮忙!
【问题讨论】:
-
选择本身是否返回预期结果?
标签: sql join google-bigquery sql-insert