讨教一个关于分组count的问题

eball 2001-12-18 03:30:24
现有一个表table1,有字段f1,f2
执行查询
select f1,count(*)
from table1
where f2 = xxx
group by f1

如果查出无此条件记录我希望结果是
-------------------
f1 | count(*)
-------------------
xx | 0
-------------------
yy | 0
.
.
.

但实际结果为空

如果去掉group by,作count,结果就为0

这是为什么?


* 数据库为Oracle 8
...全文
86 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
kuai_kevin 2001-12-18
  • 打赏
  • 举报
回复
我知道答案了,不用回答了
kuai_kevin 2001-12-18
  • 打赏
  • 举报
回复
to MountLion:
直接用nvl就可以了,为什么要那么复杂?
It's my sql:
select f1,nvl(count(*),0)
from table1
where f2 = xxx
group by f1
eball 2001-12-18
  • 打赏
  • 举报
回复
收到,多谢各位
MountLion 2001-12-18
  • 打赏
  • 举报
回复
Oracle:
select a.f1, nvl(ct,0)
from
(
select f1,count(*) ct from table1 where f2=xxx
) a,
(
select distinct f1 from table1
) b
where a.f1(+)=b.f1;
如果有另外的表存储所有的f1,可用它代替子查询b
hanyu010 2001-12-18
  • 打赏
  • 举报
回复
你写成nvl(count(*),0)不就行了
xiaobo 2001-12-18
  • 打赏
  • 举报
回复
如果去掉group by,还能查询么?
蓝天 2001-12-18
  • 打赏
  • 举报
回复
是where语句限制掉了.如果想实现你所要的结果得写得复杂些
eball 2001-12-18
  • 打赏
  • 举报
回复
呵呵,去掉条件我还查他干什么:)
flowerofwind 2001-12-18
  • 打赏
  • 举报
回复
那就去掉where条件不就行了
三杯倒 2001-12-18
  • 打赏
  • 举报
回复
1111

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧