【问题标题】:Count number of values in SQL query / bigquery计算 SQL 查询/大查询中的值的数量
【发布时间】:2020-07-01 16:56:18
【问题描述】:

我有一个查询,它从 JSON 文档中提取一些数据,我有一个查询,它基于返回的值的数量显示总列数。我似乎无法弄清楚如何将这些组合成一个查询?假设我需要使用子查询但不确定从这里去哪里?

SELECT
JSON_EXTRACT_SCALAR(data, '$.cat.name') as cat_name
JSON_EXTRACT_SCALAR(data, '$.dog.name') as dog_name
FROM table
SELECT
CASE WHEN cat_name IS NOT NULL THEN 1 ELSE 0 END +
CASE WHEN dog_name IS NOT NULL THEN 1 ELSE 0 END AS cat_dog_total 
FROM table

【问题讨论】:

    标签: sql google-bigquery


    【解决方案1】:

    您可以使用子查询来保持可读性:

    SELECT (CASE WHEN cat_name IS NOT NULL THEN 1 ELSE 0 END +
            CASE WHEN dog_name IS NOT NULL THEN 1 ELSE 0 END
           ) AS cat_dog_total 
    from (select JSON_EXTRACT_SCALAR(data, '$.cat.name') as cat_name
                 JSON_EXTRACT_SCALAR(data, '$.dog.name') as dog_name
          from table
         ) t
    

    当然,您也可以在 JSON_EXTRACT_SCALAR() 表达式中进行替换,但这更具可读性。

    【讨论】:

      猜你喜欢
      • 2021-02-26
      • 1970-01-01
      • 1970-01-01
      • 2012-01-09
      • 1970-01-01
      • 1970-01-01
      • 2012-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多