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

时间:2018-12-14 02:30:09

标签: mysql case

从本质上讲,我正在尝试做一个案例说明,以计算计算机科学部门,生物学部门中的课程数量以及一个课程中所有其他课程的总数名为 Others 的行。

它应该像这样:

enter image description here

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

enter image description here

如果没有任何意义或您需要更多信息,请告诉我。谢谢!

这是表架构和数据:

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;

这是我当前的查询:

import re
from datetime import datetime, timedelta

question = "How long is the video (mm:ss)? "
how_long = input(question).strip()

while not re.match(r"^[0-5]?\d:[0-5]?\d$", how_long): # regex to check if mm:ss digits are in range 0-5
    how_long = input("Wrong format. " + question).strip()

mm_ss = how_long.split(":")
how_long_obj = datetime.strptime(f"{mm_ss[0]}:{mm_ss[1]}", '%M:%S')
print(f"{how_long_obj - timedelta(seconds=68):%M:%S}")

1 个答案:

答案 0 :(得分:0)

该查询的一种方法是创建一个new_dept_name列,以连接要求部门名称,该名称将进入标签Other,然后group by这个新列,最后使用这些组中的标准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

您可以在此处查看在线示例:

DB FIDDLE