首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌BigQuery维数SQL多重网格

谷歌BigQuery维数SQL多重网格
EN

Stack Overflow用户
提问于 2021-03-07 20:56:08
回答 1查看 38关注 0票数 1

如何在下面的示例中选择多个网格,而不是仅在“WHERE”下选择一个网格:

代码语言:javascript
复制
SELECT
    sdg_code,
    sdg_name,
    "grid.5170.3" as grid,
    year,
    COUNT(DISTINCT id) as pubs,
    ROUND(AVG(fcr), 1) as fcr,
    ROUND(EXP(AVG(LOG(GREATEST(fcr, 1)))), 1) as fcr_geomean,
    ROUND(sum(AltWithScore), 1) as altmetric
FROM
    (
        SELECT
            p.id,
            year,
            if(p.altmetrics.score > 0, 1, 0) as AltWithScore,
            cat_sdg.code as sdg_code,
            cat_sdg.name as sdg_name,
            p.metrics.field_citation_ratio as fcr,
            p.altmetrics.score as altmetric_score,
            row_number() over(partition by p.id, cat_sdg.code) as rn
        FROM
            dimensions - ai.data_analytics.publications p,
            UNNEST(category_sdg.full) cat_sdg
        WHERE
            year >= 2011
            AND year <= 2020
            AND "grid.5170.3" in UNNEST(research_orgs)
    )
WHERE rn = 1
GROUP BY
    sdg_code,
    sdg_name,
    year
ORDER BY year asc

需要改变的是:

它目前只运行一个组织(网格),我想它运行11个组织。该组织使用一个名为“GRID”的ID标识,它看起来如下:"grid.5170.3“

我希望我的新代码能获得更多10个组织I。需要使用以下10: grid.5254.6,grid.7048.b,grid.5117.2,grid.10825.3e,grid.4655.2,grid.11702.35,grid.154185.c,grid.475435.4,grid.7143.1,grid.27530.33

并添加一个具有组织名称的列;当前只有一个包含该组织的列。

谢谢,这整件事都是新手。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-07 21:20:00

而不是使用下面的WHERE year >= 2011 AND year <= 2020 AND "grid.5170.3" in UNNEST(research_orgs)

代码语言:javascript
复制
WHERE year >= 2011 AND year <= 2020 
AND EXISTS (
  SELECT 1
  FROM UNNEST(research_orgs) grid 
  WHERE grid IN ('grid.5170.3', 'grid.5254.6', 'grid.7048.b', 'grid.5117.2', 'grid.10825.3e', 'grid.4655.2', 'grid.11702.35', 'grid.154185.c', 'grid.475435.4', 'grid.7143.1', 'grid.27530.33')
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66521326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档