【问题标题】:BigQuery. Scalar subquery produced more than one element大查询。标量子查询产生了多个元素
【发布时间】:2018-04-07 02:40:36
【问题描述】:

这是一个导致此错误的查询: 查询失败 错误:标量子查询产生了多个元素

select date
       ,isdepositor
       ,category 
       ,(select distinct dd from unnest(d.subcategory) dd) subcategory
       ,dau
from(
       select date
       ,isdepositor
       ,'Level' as Category
       ,array(select 'Daily' union all select 'Weekly' union all select 'Monthly') subcategory
       , dau 
       from DWH.vT_DAU
) d

DWH.vT_DAU 是一个视图,其中为每个日期和布尔字段“isdepositor”计算 DAU。

我需要创建自定义字段“Category”和“Subcategory”,其中每个“date”和“isdepositor”DAU 都将显示相同的字段。

我在这里发现了一些关于这个 bigquery 错误的类似问题,但是,任何解决方案都不适合我。

任何帮助将不胜感激。谢谢!

【问题讨论】:

  • 设法在 JOIN 中使用 UNNEST 解决了这个问题。但是,如果有人对如何在 SELECT 中 UNNEST 有想法,将不胜感激

标签: sql google-bigquery


【解决方案1】:

我需要创建自定义字段“Category”和“Subcategory”,其中每个“date”和“isdepositor”DAU 都将显示相同的字段。

下面正是这样做的

#standardSQL
SELECT 
  date
  ,isdepositor
  ,'Level' AS Category
  ,subcategory
  , dau 
FROM `DWH.vT_DAU`
CROSS JOIN 
  (SELECT 'Daily' subcategory UNION ALL SELECT 'Weekly' UNION ALL SELECT 'Monthly')

above 相当于 below - 这很可能是您最终的结果(基于您的评论)

#standardSQL
SELECT 
  date
  ,isdepositor
  ,'Level' AS Category
  ,subcategory
  , dau 
FROM `DWH.vT_DAU`
, UNNEST(['Daily', 'Weekly', 'Monthly']) subcategory

【讨论】:

  • 谢谢你,米哈伊尔!与您的第二个变体类似
猜你喜欢
  • 1970-01-01
  • 2018-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多