首页 > 解决方案 > 查询合并需要计数的结果

问题描述

问题陈述-

我有两个表“位置”和“访问”。在“位置”表中,我有关于城市、国家、邮政编码等的详细信息,在“访问”中,我有对“位置”表中提到的位置进行了多少次访问的详细信息。

以下是两个表的列值 -

位置表

ID|City Name|Country Name|Zip Code|

访问表

ID|Visit Date|Visit End Date|Visit Type|

问题-我想计算针对特定国家和特定访问类型的访问总数(基于访问表中访问类型列的值)。通常,通过获取访问表中的总行数并使用“ID”列作为连接它们的键,这将是直截了当的。除此之外,我希望结果显示如下 -

##结果

Country Name|Total no of Visits|

这就是让我陷入困境的原因。我不确定如何在此处获取国家/地区名称以及行的计数值。

标签: mysqlsqljoinoracle12c

解决方案


了解这ID是连接两个表的共同属性,您可以使用简单的 group by 操作来完成...

select
  [Country Name],
  count(*)
from location l
  join visit v
    on l.id = v.id
group by [Country Name]

如果要按 and 拆分计数Country NameVisit Type则必须将其添加到查询并按此字段分组,但输出不会像您描述的那样

select
  [Country Name],
  [Visit Type],
  count(*)
from location l
  join visit v
    on l.id = v.id
group by [Country Name],[Visit Type]

推荐阅读