在查询中使用sum()
而没有结果时返回空行
例如我有这张桌子:
| id | name | visit | active |
| 1 | ali | 4 | 0 |
| 2 | ali | 8 | 0 |
然后我运行此查询:
select name, sum(visit) visit
from table
where active = 1
因为此查询不是结果
返回此:
| name | visit |
| null | null |
我不希望结果中有任何行
我可以用sql方法解决问题吗?
答案 0 :(得分:1)
select name, sum(visit)
from table
where active = 1
group by name
having sum(visit) is not null;
答案 1 :(得分:0)
我建议使用条件聚合:
SELECT name, SUM(active = 1) visit_cnt
FROM yourTable;
这样,您的应用程序将始终收到包含访问计数的单行,该计数将为零或更大。
答案 2 :(得分:0)
select tmp.* from
(
select name, sum(visit) as visit
from table
where active = 1
) as tmp
where tmp.visit is not null