一條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 (全外連接):返回左右表中所有的記錄和左右表中連接字段相等的記錄。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM