You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

查询三位及以上作者的论文:SQL语句正确性咨询

分析你查询三位及以上作者论文的SQL语句

咱们来逐个拆解你写的两条SQL,看看问题出在哪:

第一条SQL的问题

这条语句的逻辑完全跑偏啦!你这里的acnum应该是作者编号吧?Where acnum >3是在筛选作者编号大于3的作者记录,根本不是在统计每篇论文的作者数量,完全没达到你要找“有三位及以上作者的论文”的需求。另外distinct在这里也没有实际作用,反而可能额外消耗性能,完全可以去掉。

第二条SQL的问题

这条的思路是对的:通过关联论文表和作者表,按论文编号、标题分组后统计作者数量,这个方向没问题。但有个关键的小错误:你用了Having count(a.acnum) >3,这会筛选出**作者数量超过3位(也就是4位及以上)**的论文,而你的需求是“三位及以上”,所以条件应该改成count(a.acnum) >=3。

补充个小优化:如果acnum字段不会出现空值,用count(*)会更高效,因为数据库不需要判断字段是否为空,最终统计结果是一样的。

修正后的SQL示例

select p.panum, p.title
from paper p
join author a on a.panum = p.panum
group by p.panum, p.title
having count(a.acnum) >= 3;

或者更高效的版本:

select p.panum, p.title
from paper p
join author a on a.panum = p.panum
group by p.panum, p.title
having count(*) >= 3;

内容的提问来源于stack exchange,提问作者sogyals429

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:48:29