一条sql 多个count 不一样条件。以及sql的链接方式的定义区别

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

  例如:统计全部任务以及今天发布的任务的数量sql

  解决:如下代码,spa

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 啥的都行code

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

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

相关文章
相关标签/搜索