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 (全外连接):返回左右表中所有的记录和左右表中连接字段相等的记录。

版权声明:本文为cybg原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/cybg/p/15129423.html