首页 > 解决方案 > 使用两个不同的 WHERE 获取两个值

问题描述

所以我试图得到一个值,它是一个州的名字的最大数量,然后是所有州的名字的总数。我想我必须做一个WHERE * IN但不知道该放什么。这是我到目前为止所拥有的

SELECT name,SUM(number) as total
FROM
`bigquery-public-data.usa_names.usa_1910_current`
where state = 'AL'
group by name;

标签: sqlgroup-bygoogle-bigquerysumgreatest-n-per-group

解决方案


考虑:

select name, sum(number) total
from bigquery-public-data.usa_names.usa_1910_current t
where name = (
    select name
    from bigquery-public-data.usa_names.usa_1910_current
    where state = 'AL'
    order by number desc
    limit 1
)
group by name

子查询恢复状态 ALname最大的那个。number然后,外部查询计算number整个数据集中该名称的总和。


推荐阅读