Mysql在Sum(if())中计数不同的ID

  • 本文关键字:ID Sum if Mysql mysql
  • 更新时间 :
  • 英文 :


我有以下表格。

案例

埃尔弗里德
ID 名称
1 Anton
3Osram

COUNT()CASE表达式一起使用,而不是使用SUM():

SELECT SUM(duration) total_duration, 
COUNT(DISTINCT ID) distinct_ids, 
COUNT(DISTINCT CASE WHEN `Case` NOT IN (1,2) THEN `Case` END) cases_not_in_Appointments 
FROM Fastdocu

由于COUNT()不具有ELSE分支,它将不计数不满足条件Case NOT IN (1,2)Case,因为在这种情况下CASE表达式的结果将是NULL

如果要计数不同的ids而不是不同的Cases,则更改为:

COUNT(DISTINCT CASE WHEN `Case` NOT IN (1,2) THEN ID END) 

请参阅演示
结果:

1
total_durationdistinct_idscases_not_in_Appoints
883

最新更新