我也问个统计的SQL。想了两天了,没好的办法。

xiaoyi20 2005-03-31 04:05:36
select field1,count(field2) as allDone from table1 where field3=0 group by field1;
select field1,count(field2) as allWait from table1 where field3=1 group by field1;
请高手指教怎么样才能把上面两句SQL组合成一句得到如下的结果集
列 field1 allDone allWait
数据 ... .... .....
... .... .....
...全文
162 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
simpleOra 2005-04-01
  • 打赏
  • 举报
回复
select field1,count(allDone),count(allWait) from (
select field1,count(field2) as allDone,null allWait from table1 where field3=0 group by field1
union all
select field1,null allDone,count(field2) as allWait from table1 where field3=1 group by field1) a
group by field1
hrui99 2005-04-01
  • 打赏
  • 举报
回复
上面同意
xiaoyi20 2005-04-01
  • 打赏
  • 举报
回复
非常感谢skystar99047(天星)。
skystar99047 2005-03-31
  • 打赏
  • 举报
回复
select a.field1,a.allDone,b.allWait (select field1,count(field2) as allDone from table1 where field3=0 group by field1) a,(select field1,count(field2) as allWait from table1 where field3=1 group by field1) b where a.field1=b.field1;
=============================================================
你想得到如下的形式
列 field1 allDone allWait
数据 ... .... .....
... .... .....
=============================
不知道你的两个结果集中的field1是否完全一样,如果一样用上面的语句就这样,如果不一样,比如第一个结果集中field1中有值"A"而第二个结果集没有,这样你想得到什么样的形式?你可以改一下连接方式,左连、右连、。。或全连。
armyyd 2005-03-31
  • 打赏
  • 举报
回复
不知道你这样连起来有什么作用

都不知道哪条语句查询出来的记录多,怎么去合并?
xiaoyi20 2005-03-31
  • 打赏
  • 举报
回复
别的方法也行。只要是能用纯粹的SQL语言来实现就可以了。用PL/SQL也可以,不过这样就简单多了。
leborety 2005-03-31
  • 打赏
  • 举报
回复
不能这样吧

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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