【问题标题】:Conditionally selecting two columns有条件地选择两列
【发布时间】:2019-04-20 19:08:00
【问题描述】:
这是我电子表格中的数据:
colA colB
NYC USA
NYC USA
ROC USA
SEA USA
YVR CAN
YYZ CAN
LON UK
LON CAN
LON USA
如何获取以下规则的数据:
获取所有城市和国家,其中有超过 1 个独特的城市+国家组合。换句话说,只提取那些拥有多个国家的城市(以及相应的国家)。
根据以上数据,我希望得到以下结果:
LON UK
LON CAN
LON USA
因为 LON 是唯一在不同国家/地区出现超过 1 次的 LON。
尝试了 COUNTIF、UNIQUE、QUERY,但它们都没有产生我希望的结果,因为我知道我没有正确使用它们。
【问题讨论】:
标签:
sql
google-sheets
google-sheets-query
google-query-language
【解决方案1】:
在 SQL 中,您可以通过以下方式获取此类城市的列表:
select city
from t
group by city
having min(country) <> max(country);
但是,如果您想要原始行,我会改用 exists:
select city, country
from t
where exists (select 1 from t t2 where t2.city = t.city and t2.country <> t.country);
【解决方案2】:
你需要使用QUERY函数作为
=QUERY("SELECT ColA, ColB WHERE Col1='colA'"
QUERY(
QUERY(
Data!A1:B10,
"SELECT colA, count(distinct ColB) GROUP BY ColA"
),
"WHERE Col2 > 1")
)
Col2 区分大小写,应该写成 initcapped 这样。