美文网首页三月听我说
SQL语句中的判断

SQL语句中的判断

作者: STioPlato | 来源:发表于2019-10-17 16:55 被阅读0次

虽然我早就知道sql语句的强大之处,正好比数据分析师们什么都不会,单凭一门sql语言就出来各种各样的数据。但我也从来没想到自己会有一天在sql语句里头进行判断处理。

起因:老师让给查一下每个人每学期总共有多少学时的课,他想看看每周每个人大概的课程数。刚好 我们的课表系统的数据结构是每一节课一条数据,如果时间分为单双周或者是时间段分开了则存成不同的元组,所以我需要做的就是把某个人的所有课程信息先groupby一下人命,然后每一节课的结束周数减去开始周数,最后求个sum就可以获得到一学期的课了。听起来没问题,写起来也很简单。

SELECT course.user_name,user.user_class,user.department, sum(course.end_week - course.start_week + 1) As total
FROM timeTable.course
inner join user 
on user.dd_id = course.dd_id
WHERE course.is_delete = 0
group by user_name
order by total desc
初步结果

然后同学见到了我随口一问,才发现,自己忽略了单双周的两种情况,单周和双周计算课时的方法时不一样的,需要除以2或者除以2再加一,这就需要用到判断了啊。。

实际上挺慌的,怕没法完美完成任务,然后就去bing一下,查mysql条件语句,竟然真的有能够在mysql里面进行条件查询的语句天呐。瞬间变得激动了起来,也不知道为什么,写原生代码(sql)总是让我感到很激动,比JPA或者是其他JDBC什么激动许多。然后开始上手用,尝试着使用case when then,把我查到的例子粘贴过来吧~ 出自他人回答

瞬间SQL语句变得更加灵活了,然后经过各种测试编写,除了最后sum函数应该包括的内容卡了我一下,其他的就顺理成章的出来了,很好。

SELECT course.user_name,user.user_class,user.department, 
sum(case course.type 
when 1 then (course.end_week - course.start_week + 2)/2
when 2 then (course.end_week - course.start_week)/2 + 1
when 0 then course.end_week - course.start_week + 1
END) AS total,
sum(case course.type 
when 1 then (course.end_week - course.start_week + 2)/2
when 2 then (course.end_week - course.start_week)/2 + 1
when 0 then course.end_week - course.start_week + 1
END)/19 AS perWeek
FROM timeTable.course
inner join user 
on user.dd_id = course.dd_id
WHERE course.is_delete = 0
group by user_name
order by total desc
最终结果

相关文章

  • SQL语句中的判断

    虽然我早就知道sql语句的强大之处,正好比数据分析师们什么都不会,单凭一门sql语言就出来各种各样的数据。但我也从...

  • #{}和${}应用场景

    #{}sql语句中;//占位符== ?spel注入方式中; //#{user1.name} ${}sql语句中;...

  • select case when if 的一些用法【转载】

    概述:sql语句中的case语句与高级语言中的switch语句,是标准sql的语法,适用于一个条件判断有多种值的情...

  • case语句

    概述:sql语句中的case语句与高级语言中的switch语句,是标准sql的语法,适用于一个条件判断有多种值的情...

  • MySQL注释

    一、单行注释 SQL语句中的单行注释使用-- 二、多行注释 SQL语句中的多行注释采用/*…*/

  • Oracle之-查询(二)

    本文主要讲解一下几个方面:1.分组(group by) 分组之后的条件判断 having3.SQL语句中的语法关...

  • sql语句中as的用法和作用

    sql语句中as的用法和作用

  • 数据库优化

    一.sql语句优化 1.应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但...

  • SpringBoot整合pagehelper插件

    1、sql语句中EXISTS的用法 首先先讲一下SQL语句中EXISTS关键字的用法,之前在学校上课的时候经常有这...

  • [SQL case when的两种用法]

    当我们需要从数据源上 直接判断数据显示代表的含义的时候 ,就可以在SQL语句中使用 Case When这个函数了....

网友评论

    本文标题:SQL语句中的判断

    本文链接:https://www.haomeiwen.com/subject/dokvmctx.html