排除count为零的MySQL结果行

tam*_*ale 4 mysql sql select count

我有以下SQL查询:

SELECT 
    COUNT(CASE WHEN u.account_new = 1 THEN u.user_id END) AS new_user, 
    COUNT(u.user_id) AS all_users, 
    c.country_name AS country 
FROM users u, countries c 
WHERE u.country_id = c.country_id 
GROUP BY u.country 
Run Code Online (Sandbox Code Playgroud)

这显示按国家/地区分组的新用户数和总用户数.我想排除新用户数为零的行,但我不确定如何在上面的SQL中执行此操作.目前我正在用PHP跳过它们,但认为可能有更好的方法来编写查询.

欢迎任何建议.

Sak*_*ket 9

使用此:(注意HAVING子句)

SELECT 
    COUNT(CASE WHEN u.account_new = 1 THEN u.user_id END) AS new_user, 
    COUNT(u.user_id) AS all_users, 
    c.country_name AS country 
FROM users u, countries c 
WHERE u.country_id = c.country_id 
GROUP BY u.country 
HAVING COUNT(CASE WHEN u.account_new = 1 THEN u.user_id END) > 0
Run Code Online (Sandbox Code Playgroud)