一條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

相關文章
相關標籤/搜索