sql - 如何显示同一区域和具有相同特征的排队人数
问题描述
我是 sql 新手,所以我请求帮助是否可以显示居住在具有相同特征的同一区域的人数。这是我的示例表。
区域
AreaID Area_name
-----------------
001 India
002 Boston
003 US
第二张表:
人
P_Id | P_name | car | AreaID
------|--------|-------|-------
P01 | John | yes | 001
P02 | Mary | null | 001
P03 | Chris | yes | 003
P04 | Jane | null | 001
P05 | Ben | null | 002
...
...
P99 | May | null | 002
...
我想要一个查询来返回在表中注册的人数。
我希望的答案是显示在同一地区拥有汽车的人数。
AreaID | Havecar
-------|--------
001 | 2
002 | 7
或者显示最多的人拥有不同的汽车
AreaID | numberOfPeople
--------|--------------
002 | 32
这两个可以使用 sql 查询吗?
解决方案
我希望的答案是显示同一地区有车的人数。
您可以使用聚合:
select areaid, count(*) havecar
from person
where car = 'yes'
group by areaid
如果您还想展示没有任何汽车的区域,那么您可以从桌子开始,area
并带上person
:left join
select a.areaid, coalesce(p.havecar, 0) havecar
from area
left join (
select areaid, count(*) havecar
from person
where car = 'yes'
group by areaid
) p on p.areaid = a.areaid
推荐阅读
- javascript - JS 对象在推入数组后变得未定义
- javascript - 正则表达式:只允许字母和单个空格,并且必须以字母开头,并且长度必须至少为 3
- css - 如何扩展弹性项目的空白边距?
- javascript - 有没有办法在 Rails 6 的表单中向 collection_select 字段添加新值?
- javascript - 如何在鼠标悬停时打开选择选项
- c# - C# WPF 将 UTF16 字符串传递给接受 char * 的函数
- python - 在python中将分层数据转换为特定的json格式
- javascript - 如何使用Javascript在句子中的单词之间添加动态值?
- sql - 无法使用 Group by - 显示错误:列必须出现在 GROUP BY 子句中或用于聚合函数
- python - 在 ACR1252U NFC 读卡器上强制 PC/SC 驱动程序并使用 python 进入卡仿真模式