当前位置: 首页 > 面试题库 >

根据另一个表中的值查找总数

谢锦程
2023-03-14
问题内容

在Mysql中:

我表中的城市有重复的值:

座席城市:

Name

New York, USA
New York, USA
Chicago, USA
Chicago, USA
Chicago, USA
Paris, France
Nice, France
Milan, Italy

该表中的数据格式为:

<city>, <country>

与…一样:

<city><comma><space><country>

表国家:

Name

USA
France
Italy

我想知道每个国家有多少座城市。喜欢:

Country      Count

USA           2
France        2
Italy         1

因此,我有2个查询:

SELECT count(*) FROM `Cities` WHERE Cities.name LIKE '%, USA%'

但是此值USA应来自:

SELECT * FROM `country`

现在,如何获得所需的表?


问题答案:

带有LEFT JOIN

select t1.name Country, count(distinct t2.name) Count
from country t1 left join cities t2 
on t2.name like concat('%, ', t1.name)
group by t1.name

结果:

| Country | Count |
| ------- | ----- |
| France  | 2     |
| Italy   | 1     |
| USA     | 2     |


 类似资料:
  • 我试图用Python复制我的Stata代码,我被指向熊猫的方向。然而,我很难思考如何处理数据。 假设我想遍历列标题“ID”中的所有值。如果该ID与一个特定的数字匹配,那么我想更改两个相应的值FirstName和LastName。 在Stata,它看起来像这样: 因此,这将替换 FirstName 中与 ID == 103 到 Matt 的值对应的所有值。 在熊猫身上,我正在尝试这样的东西 不知道该

  • 问题内容: 我在SQLite中有两个表,看起来像这样 我试图编写查询以基于表Y中的记录更新表X上的记录。更新的条件如下所示 但是当我尝试这样做时,我收到一条错误消息,说 没有这样的列:table_y.c2 问题答案: 删除的答案关于错误的原因是正确的:必须在查询中 引入 关系标识符(例如,使用FROM / JOIN),然后才能使用它。 虽然SQLite的不 不 支持(因此没有办法直接引入查找关系)

  • 问题内容: 所以我知道这个问题不是一个新问题,但我正在努力解决这个问题,并了解解决此类情况的最佳方法。 假设我有一个假设表’X’,看起来像这样: 我想查询它,以便结果集如下所示: 基本上,我想要的是按我的列分组的MAX值。更重要的是,我不想按列分组,我只想知道与MAX对应的“ ID” 。 我知道一个伪解决方案是: 但这不能解决DateTime可能不是唯一的事实。像这样加入DateTime似乎很草率

  • 我有两个表:< code>person_concern和< code>person。它们都有一个< code >代码列,而< code>person有一个< code>dept列。我想从< code>person_concern表中选择数据,其中< code>person表中的< code>dept列= 30。 基本上,表的每一行都有不同的代码,然后将该人员放入一个部门。因此,我可以在表中使用相同

  • 我和Spark一起在Databricks上工作。编程语言是Scala。 我有两个数据帧: 主数据框:见截图:1 查找数据帧:参见屏幕截图3 我想: 查找主数据框中“年龄”=-1的所有行 我对如何做这件事伤了脑筋。我唯一想到的是将dataframe存储为DataRicks中的表,并使用SQL语句(SQL.Context.SQL…),结果非常复杂。 我想知道是否有更有效的方法。 编辑:添加可复制的示例

  • 问题内容: 我有一个这样的字符串列表: 使用Y中的值对X进行排序以获取以下输出的最短方法是什么? 具有相同“键”的元素的顺序无关紧要。我可以求助于for结构的使用,但我好奇是否有更短的方法。有什么建议么? 问题答案: 最短代码 例: 一般来说 解释: 两个。 创建一个新的,list基于zip使用排序sorted()。 使用列表推导从排序的,压缩的中提取每对的第一个元素list。