有员工表empinfo
(fempno varchar2(10) not null pk,
fempname varchar2(20) not null,
fage number not null,
fsalary number not null);假如数据量很大约1000万条,写一个你认为最高效的sql,用一个sql计算一下四种人:
fsalary>9999 and fage>35
fsalary>9999 and fage<35
fsalary<9999 and fage>35
fsalary<9999 and fage<35
(fempno varchar2(10) not null pk,
fempname varchar2(20) not null,
fage number not null,
fsalary number not null);假如数据量很大约1000万条,写一个你认为最高效的sql,用一个sql计算一下四种人:
fsalary>9999 and fage>35
fsalary>9999 and fage<35
fsalary<9999 and fage>35
fsalary<9999 and fage<35
解决方案 »
- oracle 连接问题.....就是安装的时候连接没问题,后面使用经常了问题!
- Oracle 10 express edition 新建的表,为什么用sql语句没法查询
- 请问哪位在linux下安装过oracle,安装的时候中文是乱码,哪里能够下载到javacn.zip,谢谢了.或者发到我的邮箱里面[email protected]
- 关于oracle英文字符集乱码的问题,查询显示乱码的问题。
- ORACLE ENTERPRISE MANAGER操作问题
- 得点分太不容易,升了个三角,也兴奋,散分咯~~
- oracle中自定义函数可以实现一个函数的参数既可以是字符也可以是数字?
- 各位高手,放了两周的问题
- oracle中,如何获取到最新插入的一批记录
- 大神能帮下么 oracle 查询的问题
- 谁有 Form Builder,Report Builder开发视频教程提供一份?万分感激!
- Oracle存储过程如何返回数据集
SELECT COUNT(CASE
WHEN fsalary > 9999 and fage > 35 THEN
1
ELSE
NULL
END) A,
COUNT(CASE
WHEN fsalary > 9999 and fage < 35 THEN
1
ELSE
NULL
END) A,
COUNT(CASE
WHEN fsalary < 9999 and fage > 35 THEN
1
ELSE
NULL
END) A,
COUNT(CASE
WHEN fsalary < 9999 and fage < 35 THEN
1
ELSE
NULL
END) A
FROM empinfo
你直接select count(*) from empinfo;不就完事了。
group by fempno,fempname;
group by fempno,fempname;
SELECT CASE
WHEN fsalary > 9999 and fage > 35 THEN 'fsalary > 9999 and fage > 35'
WHEN fsalary > 9999 and fage < 35 THEN 'fsalary > 9999 and fage < 35'
WHEN fsalary < 9999 and fage > 35 THEN 'fsalary < 9999 and fage > 35'
WHEN fsalary < 9999 and fage < 35 THEN 'fsalary < 9999 and fage < 35'
ELSE 'other' END,COUNT(*)
FROM empinfo
GROUP BY CASE
WHEN fsalary > 9999 and fage > 35 THEN 'fsalary > 9999 and fage > 35'
WHEN fsalary > 9999 and fage < 35 THEN 'fsalary > 9999 and fage < 35'
WHEN fsalary < 9999 and fage > 35 THEN 'fsalary < 9999 and fage > 35'
WHEN fsalary < 9999 and fage < 35 THEN 'fsalary < 9999 and fage < 35'
ELSE 'other' END