首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL视图只返回一行

SQL视图只返回一行
EN

Stack Overflow用户
提问于 2017-11-21 01:12:28
回答 1查看 338关注 0票数 1

我试图创建一个视图,返回每个加州学生注册的课程数量。我的“学生”表中列出了4个CA学生,因此它应该返回那么多行。

代码语言:javascript
复制
create or replace view s2018_courses as 
select Students.*, COUNT(Current_Schedule.ID) EnrolledCourses
from Students, Current_Schedule
where Students.ID = Current_Schedule.ID AND state='CA';

但是,此查询只返回包含一个学生信息的一行,以及所有CA学生都参加的课程总数(在本例中为14,因为每个学生都注册在3-5个班级)。

我最近创建了一个类似于此的视图(在不同的DB中),它运行良好,执行了多行,所以我不知道出了什么问题?对不起,如果这是一个混乱的问题,我是新的SQL和StackOverflow!提前感谢您的任何建议!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-21 01:16:57

在查询/视图中缺少一个聚合步骤:

代码语言:javascript
复制
CREATE OR REPLACE VIEW s2018_courses AS 
SELECT
    s.ID, COUNT(cs.ID) EnrolledCourses
FROM Students s
INNER JOIN Current_Schedule cs
    ON s.ID = cs.ID
WHERE
    state = 'CA'
GROUP BY
    s.ID;

当前查询的逻辑问题是,您使用的是不带COUNT(*)GROUP BY,而MySQL解释这意味着要计算整个表的数量。还请注意,我只在上面的查询中选择了ID,因为这是用于聚合的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47403677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档