免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3470 | 回复: 9
打印 上一主题 下一主题

请高手帮看一下这个count(*)函数怎么写,谢谢了! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-10-07 22:29 |只看该作者 |倒序浏览
创建表,并插入数据,
create table test(num int) ;

insert into test(num) values(1);
insert into test(num) values(2);
insert into test(num) values(4);
commit;

我的查询一语句是select  num, count(*) from test where num in (1,2,3,4) group by  num
结果是
SQL> select  num, count(*) from test where num in (1,2,3,4) group by  num;

                                    NUM   COUNT(*)
--------------------------------------- ----------
                                      1          1
                                      2          1
                                      4          1


我想要的结果是
                NUM   COUNT(*)
--------------------------------------- ----------
                                      1          1
                                      2          1
                                      3          0
                                      4          1

哪位高手知道这个结果的语句,怎么写,谢谢,急

论坛徽章:
0
2 [报告]
发表于 2010-10-07 22:31 |只看该作者
我的select count(*) from test where num = 3 ; 可以得到结果0

论坛徽章:
3
CU大牛徽章
日期:2013-09-18 15:16:55CU大牛徽章
日期:2013-09-18 15:18:22CU大牛徽章
日期:2013-09-18 15:18:43
3 [报告]
发表于 2010-10-08 08:25 |只看该作者
这个好像有点难度啊

如果是多张表   倒是可以的通过外连接来实现的

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
4 [报告]
发表于 2010-10-08 09:03 |只看该作者
你的表里根本没有3,怎么查询出来啊。感觉比较有难度。

论坛徽章:
0
5 [报告]
发表于 2010-10-08 10:19 |只看该作者
问题在于,LZ要num=3时的count(*),那么是不是要num=5的呢?

论坛徽章:
3
CU大牛徽章
日期:2013-09-18 15:16:55CU大牛徽章
日期:2013-09-18 15:18:22CU大牛徽章
日期:2013-09-18 15:18:43
6 [报告]
发表于 2010-10-08 10:31 |只看该作者
这种需求太那个了  很难处理

论坛徽章:
0
7 [报告]
发表于 2010-10-08 11:24 |只看该作者
如果有范围的,还是可以做的,比如说1-100
  1. select b.* from
  2. (
  3. select rownum num from all_objects
  4. where rownum <=100
  5. ) a,
  6. (
  7. select  num, count(*) num_cnt from test where num in (1,2,3,4) group by  num
  8. ) b
  9. where a.num = b.num(+)
复制代码

论坛徽章:
3
CU大牛徽章
日期:2013-09-18 15:16:55CU大牛徽章
日期:2013-09-18 15:18:22CU大牛徽章
日期:2013-09-18 15:18:43
8 [报告]
发表于 2010-10-08 12:52 |只看该作者
恩 强

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-02-06 06:20:00
9 [报告]
发表于 2010-10-08 22:25 |只看该作者
太变态了,不研究这个

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
10 [报告]
发表于 2010-10-09 09:43 |只看该作者
回复 7# doni


    强悍,不过我觉得楼主未必有这么好的范围。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP