zoukankan      html  css  js  c++  java
  • 一条sql 多个count 不同条件。以及sql的连接方式的定义区别

    1. 一条sql语句统计某一列,但每个count 又处于不同的条件

      例如:统计所有任务以及今天发布的任务的数量

      解决:以下代码,

    SELECT
        username,
        count(t.task_code) as allTaskNum,
        SUM( CASE WHEN date_format( t.create_time, '%Y-%m-%d' )= date_format( now(), '%Y-%m-%d' ) THEN 1 ELSE 0 END ) AS taskTodayNum 
    FROM
        sys_user s
        LEFT JOIN yw_task t ON t.create_by = s.id 
    GROUP BY
        username

      

       启发:如果仅需统计一种,但count需要写条件,那么建议使用sum case后面 有一个case_value 可以不写 when后面是可以带条件 and or 啥的都行

    2. sql语句的连接方式(照搬的,在学校学的有点忘记了),多实践与上机练习才是王道!!!

      left join (左连接):返回包括左表中的所有记录和右表中连接字段相等的记录。
      right join (右连接):返回包括右表中的所有记录和左表中连接字段相等的记录。
      inner join (等值连接或者叫内连接):只返回两个表中连接字段相等的行。
      full join (全外连接):返回左右表中所有的记录和左右表中连接字段相等的记录。

  • 相关阅读:
    vue父子组件传值的方式
    定时任务写法
    仅仅为笔记
    consul剔除某个服务
    mybatis批量查询
    一次eureka的事故
    feign的工作原理
    JVM优化
    threadlocal应用
    秋招总结
  • 原文地址:https://www.cnblogs.com/cybg/p/15129423.html
Copyright © 2011-2022 走看看