我有以下 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
这显示了按国家/地区分组的新用户数和总用户数。我想排除新用户数为零的行,但我不确定如何在上面的 SQL 中执行此操作。目前我在 PHP 中跳过它们,但认为可能有更好的方法来编写查询。
欢迎提出任何建议。
最佳答案
使用这个: (注意 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
关于mysql - 排除计数为零的 MySQL 结果行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7485418/