Mysql 案例陈述的问题(按课程数量组织部门)

Mysql 案例陈述的问题(按课程数量组织部门),mysql,case,Mysql,Case,本质上,我试图做一个案例陈述,计算计算机科学系、生物学系的课程数量,以及一行中所有其他课程的总数,名为其他 应该是这样的: 以下是我的查询实际显示的内容: 请让我知道,如果有什么不合理或你需要更多的信息。谢谢 这是表架构和数据: create table course ( course_id varchar(8), title varchar(50), dept_name varchar(20), credits numeric(2,0) check (cr

本质上,我试图做一个案例陈述,计算计算机科学系、生物学系的课程数量,以及一行中所有其他课程的总数,名为其他

应该是这样的:

以下是我的查询实际显示的内容:

请让我知道,如果有什么不合理或你需要更多的信息。谢谢

这是表架构和数据:

create table course (
    course_id varchar(8),
    title varchar(50), 
    dept_name varchar(20),
    credits numeric(2,0) check (credits > 0),
    primary key (course_id)
);

insert into course values ('BIO-101', 'Intro. to Biology', 'Biology', '4');
insert into course values ('BIO-301', 'Genetics', 'Biology', '4');
insert into course values ('BIO-399', 'Computational Biology', 'Biology', '3');
insert into course values ('CS-101', 'Intro. to Computer Science', 'Comp. Sci.', '4');
insert into course values ('CS-190', 'Game Design', 'Comp. Sci.', '4');
insert into course values ('CS-315', 'Robotics', 'Comp. Sci.', '3');
insert into course values ('CS-319', 'Image Processing', 'Comp. Sci.', '3');
insert into course values ('CS-347', 'Database System Concepts', 'Comp. Sci.', '3');
insert into course values ('EE-181', 'Intro. to Digital Systems', 'Elec. Eng.', '3');
insert into course values ('FIN-201', 'Investment Banking', 'Finance', '3');
insert into course values ('HIS-351', 'World History', 'History', '3');
insert into course values ('MU-199', 'Music Video Production', 'Music', '3');
insert into course values ('PHY-101', 'Physical Principles', 'Physics', '4');
这是我当前的查询:

select
    dept_name,
    case
        when dept_name = 'Comp. Sci.' then count(course_id)
        when dept_name = 'Biology' then count(course_id)
        else count(course_id)
    end as 'Courses'
from
    course
group by
    dept_name;

此查询的一种方法是创建一个
new\u dept\u name
列,用于将需要的部门名称加入标签
Other
,然后
按此新列分组,最后在这些组上使用标准的
count()

SELECT
    CASE
        WHEN dept_name = "Biology" THEN "Biology"
        WHEN dept_name = "Comp. Sci." THEN "Comp. Sci."
        ELSE "Other"
    END AS new_dept_name,
    count(course_id) AS numCourses
FROM
    course
GROUP BY
    new_dept_name
您可以在此处查看联机示例:


请您提供一组数据,以便我们对其进行查询和测试。@Shidersz我在上面添加了insert语句和课程表,谢谢。我还可以看到,现在我正试图在条件中显示课程计数,而我本应在“结束”之后进行此操作。不客气,请考虑向上投票,如果您愿意,请标记为正确: