首頁  >  問答  >  主體

mysql - 如何在sql語句裡寫兩個不同條件的SUM 並求出二者的差

我業務上用的表是使用者的積分日誌表,欄位是使用者id,分數類型(加為1減為2),積分,時間戳
我需要算出使用者每天的總積分是多少
我原本是分別sum出加分減分,然後在後端程式裡循環數組求差,這樣效率極低,我想在sql語句寫出了,怎麼寫呢?用case then報錯誤

SUM(CASE type=1 THEN `score` ELSE 0-`score`)
阿神阿神2704 天前755

全部回覆(1)我來回復

  • PHP中文网

    PHP中文网2017-05-24 11:35:10

    應該是:

    SUM(IF(type = 1, score, -score))
    

    或寫得囉嗦點:

    SUM(CASE WHEN type = 1 THEN score ELSE -score END)

    回覆
    0
  • 取消回覆