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

如何按列统计值排序表,修复按论文量排序教授的SQL视图仅返回单条记录问题

问题原因
  • 缺少GROUP BY professorId子句:使用COUNT()这类聚合函数时,若要按不同教授分别统计发表数量,必须指定分组字段,否则SQL会将所有符合筛选条件的行聚合为唯一一行结果,这是只返回一条记录的核心原因。
  • 排序方向不符合需求:ORDER BY默认采用升序排列,要实现发表数量从多到少排序,需要补充DESC关键字。
  • 可选优化:可将统计得到的论文数量作为视图字段返回,方便后续使用视图时直接读取统计值。
正确视图创建语句
CREATE OR REPLACE VIEW ViewTopAutors AS 
SELECT professorId, COUNT(publicationId) AS publication_count
FROM publications
WHERE autors < 5
GROUP BY professorId
ORDER BY publication_count DESC
LIMIT 3;
补充说明

如果需要同时返回教授的姓名等其他信息,可以关联Professors表实现,注意开启ONLY_FULL_GROUP_BY模式的数据库需要把所有非聚合查询字段都加入GROUP BY子句:

CREATE OR REPLACE VIEW ViewTopAutors AS 
SELECT p.professorId, pr.name, COUNT(p.publicationId) AS publication_count
FROM publications p
LEFT JOIN Professors pr ON p.professorId = pr.professorId
WHERE p.autors < 5
GROUP BY p.professorId, pr.name
ORDER BY publication_count DESC
LIMIT 3;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 05:00:02