题解 | 统计所有课程参加培训人次
SELECT
SUM(CASE WHEN course LIKE '%course1%' THEN 1 ELSE 0 END) +
SUM(CASE WHEN course LIKE '%course2%' THEN 1 ELSE 0 END) +
SUM(CASE WHEN course LIKE '%course3%' THEN 1 ELSE 0 END) AS staff_nums
FROM
cultivate_tb;
!:
COUNT(c.course like '%course1%') ×
COUNT 函数用于统计行数,而不是条件匹配的次数。因此,COUNT(c.course like '%course1%') 并不会返回匹配 course1 的行数,而是始终返回 1(因为 c.course like '%course1%' 是一个布尔值,非空即为 1)。


查看2道真题和解析