Mysql SQL嵌套查询作业SQL FIDLE
寻找会员人数最多的保险公司 这是数据库,也是我第一次尝试靠近: 如何获取最大计数?请尝试以下操作: maxcountP.pid尝试以下操作:Mysql SQL嵌套查询作业SQL FIDLE,mysql,sql,nested-query,Mysql,Sql,Nested Query,寻找会员人数最多的保险公司 这是数据库,也是我第一次尝试靠近: 如何获取最大计数?请尝试以下操作: maxcountP.pid尝试以下操作: SELECT P.cid, COUNT ( P.pid ) AS CountP FROM Patient P GROUP BY P.cid compute max(count(p.pid)) maxcountP.pid只需按患者数量降序排列结果,并只记录第一条记录 SELECT P.cid, COUNT ( P.pid ) AS Coun
SELECT P.cid, COUNT ( P.pid ) AS CountP
FROM Patient P
GROUP BY P.cid
compute max(count(p.pid))
maxcountP.pid只需按患者数量降序排列结果,并只记录第一条记录
SELECT P.cid, COUNT ( P.pid ) AS CountP
FROM Patient P
GROUP BY P.cid
compute max(count(p.pid))
SELECT P.cid AS cid, COUNT( P.pid ) AS CountP
FROM Patient P
GROUP BY P.cid
ORDER BY CountP DESC
LIMIT 1
如果多家保险公司可能拥有最大数量的成员,并且您希望获取所有成员,则需要使用子查询:
SELECT P.cid AS cid, COUNT( P.pid ) AS CountP
FROM Patient P
GROUP BY P.cid
HAVING CountP = (
SELECT COUNT(pid) AS c
FROM Patient
GROUP BY cid
ORDER BY c DESC
LIMIT 1
);
在您在评论中描述的奇怪情况下,如果无法使用限制,您可以:
SELECT P.cid AS cid, COUNT( P.pid ) AS CountP
FROM Patient P
GROUP BY P.cid
HAVING CountP = (SELECT MAX(d.c) FROM (
SELECT COUNT(pid) AS c
FROM Patient
GROUP BY cid
) AS d);
只需按患者人数降序排列结果,并只记录第一条记录
SELECT P.cid AS cid, COUNT( P.pid ) AS CountP
FROM Patient P
GROUP BY P.cid
ORDER BY CountP DESC
LIMIT 1
如果多家保险公司可能拥有最大数量的成员,并且您希望获取所有成员,则需要使用子查询:
SELECT P.cid AS cid, COUNT( P.pid ) AS CountP
FROM Patient P
GROUP BY P.cid
HAVING CountP = (
SELECT COUNT(pid) AS c
FROM Patient
GROUP BY cid
ORDER BY c DESC
LIMIT 1
);
在您在评论中描述的奇怪情况下,如果无法使用限制,您可以:
SELECT P.cid AS cid, COUNT( P.pid ) AS CountP
FROM Patient P
GROUP BY P.cid
HAVING CountP = (SELECT MAX(d.c) FROM (
SELECT COUNT(pid) AS c
FROM Patient
GROUP BY cid
) AS d);
哇-有很多限制。给你:
SELECT MAX(CountP) FROM (
SELECT P.cid, COUNT ( P.pid ) AS CountP
FROM Patient P
GROUP BY P.cid
) winner
哇-有很多限制。给你:
SELECT MAX(CountP) FROM (
SELECT P.cid, COUNT ( P.pid ) AS CountP
FROM Patient P
GROUP BY P.cid
) winner
仅供参考,你的问题是MySQL,但你的提琴是为MSSQL设计的。这是提琴中的一个bug,我在MySQL上运行了它,我确定…仅供参考,你的问题是MySQL,但你的fiddle是为MSSQL设计的。这是fiddle中的一个bug我在MySQL上运行了它我确定…我不应该使用关键字compute,它在sqlfiddle btwim上不工作我不应该使用关键字compute,它在sqlfiddle btwI上不工作我相信@eggyal已经搞定了它我相信@eggyal已经搞定了it@OfekRon:作为约阿希姆如上所述,您的SQLFIDLE是为MSSQL配置的,而您的问题是有标签的,我的答案是为MySQL配置的。我已经创建了显示上述查询工作的。对于MSSQL,您需要使用TOP1来代替限制1,我认为限制1需要放在SELECT关键字之后。@eggyal您是对的,虽然我不应该使用限制,嵌套查询还有其他方法吗?在我的查询中,您甚至不需要限制-您可以返回所有记录,只检查结果集中的第一条记录。@OfekRon:请参阅上面对我的答案的更新-虽然这使用子查询,但它仍然使用限制;这就是您所追求的,还是限制完全无效?选择P.cid作为cid,将P.pid作为CountP从患者P组中按P.cid计算CountP具有CountP=从最大d.c选择COUNTpid作为c从患者组中按cid作为d@OfekRon:正如Joachim上面提到的,您的SQLFIDLE是为MSSQL配置的,而您的问题是有标签的,我的答案是为MySQL配置的。我已经创建了显示上述查询工作的。对于MSSQL,您需要使用TOP1来代替限制1,我认为限制1需要放在SELECT关键字之后。@eggyal您是对的,虽然我不应该使用限制,嵌套查询还有其他方法吗?在我的查询中,您甚至不需要限制-您可以返回所有记录,只检查结果集中的第一条记录。@OfekRon:请参阅上面对我的答案的更新-虽然这使用子查询,但它仍然使用限制;这就是您所追求的,还是限制完全无效?选择P.cid作为cid,将P.pid作为CountP从患者P组中按P.cid计算CountP具有CountP=从最大d.c选择COUNTpid作为c从患者组中按cid作为d;