select a.classcode,b.classname,count(a.claacode) as Number
from (select decode(classcode,'05','04','06','04',classcode) classcode,classname from 表a) a inner join 表b b on a.classcode=b.classcode
group by a.classcode,b.classname having count(a.classcode)>=3
from (select decode(classcode,'05','04','06','04',classcode) classcode,classname from 表a) a inner join 表b b on a.classcode=b.classcode
group by a.classcode,b.classname having count(a.classcode)>=3
解决方案 »
- 如何查询oracle中所有的schema名以及各个schema下的所有表名
- DSRA0010E: SQL 状态 = 72000,错误代码 = 1,033
- 子表数据更新到母表,及时和准确如何保证
- oracle10g的dbf文件导入?
- ORACLE 语句实现计算列宽异常
- 在Oracle8i中如何打开OEM??急!!!在线等待
- 求救!改了机器名,服务起不来了?及怎么改oracle的全局数据库名啊?
- 想学Oracle,请大家推荐一本入门的电子书,最好从图形界面进入的,谢谢!
- 如何将Oracle的数据表结构,还有sequence,package.......倒成.sql文件?
- Oracle的一个命令问题
- 我的存储过程到底那里错了?急!!!
- 一個UPDATE語句的問題
select decode(a.classcode,'05','04','06,'04',a.classcode) code1,b.classname,count(a.claacode) as Number from 表a a inner join 表b b on a.classcode=b.classcode
group by decode(a.classcode,'05','04','06,'04',a.classcode),b.classname having count(a.classcode)>=3
select a.classcode,b.classname,count(a.claacode) over(partition by decode(a.classcode,'05','04','06,'04',a.classcode)) as num
from 表a a inner join 表b b on a.classcode=b.classcode
) where num>= 3
---------- ----------
1 01
2 01
3 01
4 01
5 02
6 02
7 02
8 03
9 03
10 03
11 04
12 05
13 05
14 06
15 06
16 06已选择16行。SQL> select * from test1;CLASSCODE CLASSNAME
---------- ----------
01 aa
02 bb
03 cc
04 dd
05 ee
06 ff已选择6行。SQL> select a.classcode,b.classname,count(a.classcode) as "Number" from
2 (select decode(classcode,'05','04','06','04',classcode) classcode from test) a,
3 test1 b
4 where a.classcode=b.classcode
5 group by a.classcode,b.classname having count(a.classcode)>=3;CLASSCODE CLASSNAME Number
---------- ---------- ----------
01 aa 4
02 bb 3
03 cc 3
04 dd 6SQL>
CLASSCODE CLASSNAME Number
---------- ---------- ----------
01 aa 4
02 bb 3
03 cc 3
04 dd 1 或者是04,05,06的总数6
05 dd 2
06 dd 3
select distinct a.classcode,b.classname,
count(a.classcode) over(partition by a.classcode) num,
count(a.classcode) over(partition by decode(a.classcode,'05','04','06','04',a.classcode)) as class_num
from ta a inner join tb b on a.classcode=b.classcode
) where class_num>= 3SQL> /CLASSCODE CLASSNAME NUM CLASS_NUM
---------- -------------------- ---------- ----------
01 木头 4 4
02 钢铁 3 3
03 水藻 3 3
04 苹果 1 6
04 香蕉 2 6
04 西瓜 3 66 rows selected
bzszp(SongZip) 的解答是正确的,除了几个小的语法错误
duanzilin(寻) 的解答是错误的,因为没有Group by,还有可能理解错误了
waterfirer(水清) 的解答也是正确的,但与bzszp(SongZip)其实是一致的再次感谢