为了接收我想要获得的输出,我应该实施啥样的连接?

Posted

技术标签:

【中文标题】为了接收我想要获得的输出,我应该实施啥样的连接?【英文标题】:What kind of join should I implement in order to receive the output I am trying to get?为了接收我想要获得的输出,我应该实施什么样的连接? 【发布时间】:2021-03-20 07:53:39 【问题描述】:

注意:只是一个练习题.. 不是在寻找免费的家庭作业答案。

我的练习题要求按飞机年份升序报告航班数量。这需要连接两个表,即航班表和飞机表。我认为 SQL 应该相对简单,我认为我的主要问题是我目前拥有的模糊的 select 语句。我查看了不同的连接方法,包括显式和隐式,还尝试了左连接,但没有成功。

如果需要更多表格信息,我可以分享。两个表共享的列是年份。

另外,这里很新,所以如果这篇文章有什么不受欢迎或不正确的地方,请告诉我。

select *,  
count(*) as n_flights  
from flights, planes 
where flights.year = planes.year 
order by planes.year asc 
;

我正在寻找的输出:

我得到的输出:

【问题讨论】:

【参考方案1】:

据推测,flights 表中有一个列引用了 planes 表的主键 - 让我假设 plane_id:这是您用来连接表的内容。

然后,您想按平面年份聚合,使用 group by 子句,并计算每个组中的行数:

select p.year, count(*) as n_flights  
from flights f
inner join planes p on p.plane_id = f.plane_id
group by p.year 
order by p.year 

【讨论】:

这在我将 plane_id 更改为 tailnum 时有效,因为这是两个表之间共享的内容,我理解这仍然是您的意思!谢谢!!【参考方案2】:
select planes.year, count(*) 
from flights, planes 
where flights.year = planes.year 
group by planes.year
order by planes.year asc 

【讨论】:

这仅返回年份和计数(*),每个仅返回一个值。我总是很欣赏额外的答案和不同的见解,所以,谢谢!!

以上是关于为了接收我想要获得的输出,我应该实施啥样的连接?的主要内容,如果未能解决你的问题,请参考以下文章

ssm 后台我要接收一个ArrayList,前台应该怎么写?JSON是啥样的?

AES 应该使用啥样的填充?

./configure 的啥样的输出被认为是坏的?

我应该使用啥样的意图来保存android设备生成的错误报告

我应该在原则上为这个数据库结构创建啥样的实体

Xcode iOS密码通过“某些”哈希/加密类型获得AF“发布” - 啥样的?