SQL-查找最大计数

SQL-查找最大计数,sql,Sql,只是一个简单的SQL问题。我一直在解决一个问题,寻找保留了最多红色船只的水手。架构如下所示: 我知道,对于每一艘红色的船,你都可以找到与你一起预订的水手人数 SELECT B.bid, COUNT (*) AS sailorcount FROM Boats B, Reserves R WHERE R.bid = B.bid AND B.color = ‘red’ GROUP BY B.bid 所以现在我想弄清楚我怎么能弄清楚哪个水手预订了最红的船。感谢任何人的洞察力 您需要将所有表连接

只是一个简单的SQL问题。我一直在解决一个问题,寻找保留了最多红色船只的水手。架构如下所示:

我知道,对于每一艘红色的船,你都可以找到与你一起预订的水手人数

SELECT B.bid, COUNT (*) AS sailorcount 

FROM Boats B, Reserves R

WHERE R.bid = B.bid AND B.color = ‘red’

GROUP BY B.bid

所以现在我想弄清楚我怎么能弄清楚哪个水手预订了最红的船。感谢任何人的洞察力

您需要将所有表连接在一起。在这里,因为船是在其唯一的PK上连接的,所以它不会复制以前连接的任何行,它只限制现有行。所以,直接计数*是有效的

不要使用连接语法,它已经被弃用多年了

选择TOP 1-对于SQL Server,选择Sybase S.sid,S.sname,算作红船 来自水手 在R.sid=S.sid上加入保留区R 在R.bid=B.bid和B.color=red上连接船B 按S.sid、S.sname分组 按计数订购*DESC -限制1-适用于MySQL、MariaDB、Postgres
你在用哪个数据库管理系统?啊,我现在明白了。这里是数学专家,所以我只是在学习SQL。我只是在使用直接SQL,那么这只适用于MySQL、Postgres等吗?直接SQL是什么意思?任何允许您限制行的SQL变体都可以使用这些语法之一来实现。这涵盖了市场上几乎所有主要的DBMS抱歉,只是普通的SQL,所以我相信SELECT TOP 1应该可以工作。谢谢你的澄清!没有普通SQL,您使用的是哪种提供程序?你是说Microsoft SQL Server吗?是的,SQL Server。