table : A, B, C,D
A:表示id,不可重复
B,C: 可以重复出现
运行环境:oracle9i
问题: 按b,c 分组后(select b,c,count(*) from table group by b,c),最后结果: A,B,C,count(*)
注:select A,B,C,count(*) group by A,B,C 请 不要给出这样的答案,一看就知道错的.
求高手帮下忙,万分感谢
A:表示id,不可重复
B,C: 可以重复出现
运行环境:oracle9i
问题: 按b,c 分组后(select b,c,count(*) from table group by b,c),最后结果: A,B,C,count(*)
注:select A,B,C,count(*) group by A,B,C 请 不要给出这样的答案,一看就知道错的.
求高手帮下忙,万分感谢
解决方案 »
- 一个程序在不同的操作系统下
- tomcat 启动出现严重: Error filterStart2009-11-11 11:27:24 org.apache.catalina.core.Sta
- 跪求大侠帮忙 jsp中用css定义表格
- JSP页面如何跳转并刷新???
- jdbc
- 100分!!这样的问题怎么实现啊?
- 关于读取SQLServer中的图像的问题,都郁闷一个星期了
- 高难度问题,怎样通过web调用exe文件
- jsp页调用java系统类的问题
- 怎样显示javamail的附件名为中文?
- org.apache.struts.action.ActionServlet
- 如何把一个JSP页面作为一个方法,可以随时调用?
ok 搞定
select max(a) as a,b,c,count(*) from table group by b,c;
最小:
select min(a) as a,b,c,count(*) from table group by b,c;
全部:
貌似要用存储过程或函数来实现,wm_concat函数是10g才支持的。
但是A是唯一的。如果在检索结果里出现A,那么count无可避免的变成1所以lz,你想要什么样的结果?
最大A,最小A?
还是说要所有A,并且需要纪录条数?
建议你
select a,b,c from table order by b,c
用纪录条数来取得一组b,c有多少条或者用两句sql来实现。
select a,b,c from table order by b,c
select b,c,count(*) from table group by b,c
楼主在这里混淆概念,该打。
select A,B,C,count(*) from Table t inner join (select B,C from Table group by B,C) tt
on t.B=tt.B and t.C=tt.C由于家的本烂木有数据库,帮你写的一个,没测试,楼主自己试试吧。
select b,c,count(*) from t group by b,c
但是加上a就不行了。所以需要使用自然连接,但是自然连接是对表的连接,无法对结果集连接。
所以需要使用临时表,所以需要使用存储过程来实现。解决办法就是使用存储过程,建立一个临时表,临时表temp,里面存放
select b,c,count(*) from t group by b,c的结果然后 select a,b,c,count(*) from (t join temp on t.b=temp.b and t.c=temp.c)这样输出的结果就是你想要的答案了