有条件地选择两列

时间:2018-11-18 02:43:22

标签: sql google-sheets google-sheets-query google-query-language

这是我电子表格中的数据:

colA   colB
NYC    USA
NYC    USA
ROC    USA
SEA    USA
YVR    CAN
YYZ    CAN
LON    UK
LON    CAN
LON    USA

如何获取以下规则的数据:

获取所有城市和国家/地区,而城市和国家/地区不止一种独特的组合。换句话说,仅提取具有多个国家/地区的城市(以及相应的国家/地区)。

根据以上数据,我希望获得以下结果:

LON  UK
LON  CAN
LON  USA

因为LON是唯一一个在不同国家/地区发生过1次以上的事件。

尝试使用COUNTIF,UNIQUE,QUERY,但它们都不产生我希望的结果,因为我知道我没有正确使用它们。

谢谢。

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

您需要将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。