初次用数据库,只是简单建个表应用,建了一个表,并导入数据,现在想查询一段时间内出现次数大于某个数值的个数
create table gupiao(
date_id varchar2(12),
code number(6),
name varchar2(20),
hangye varchar2(80),
hangye_s varchar2(40),
district varchar2(20),
times number(4),
price number(12,2),
chengjiao number(12,2),
chengjiao_avg number(12,2),
scale number(8,2))插入的数据是:
2010-6-28 521 美菱电器 电器机械及器材制造业 家庭用品 安徽 1 10.2 101.96 101.96 3.84
2010-6-28 2221 东华能源 批发和零售贸易 石油与天然气生产 江苏 1 10.17 116.63 116.63 3.65
2010-6-28 2221 东华能源 批发和零售贸易 石油与天然气生产 江苏 1 10.17 116.63 116.63 3.68
现在若想2221出现两次,选择想用count(code)>1实现,并最终实现分组,如何处理?建表时没有涉及参数,望帮忙,谢谢!SQL> select code,name,date_id from gupiao group by code;
select code,name,date_id from gupiao group by code
*
ERROR 位于第 1 行:
ORA-00979: 不是 GROUP BY 表达式SQL> select code,name,date_id from gupiao where count(code)>3;
select code,name,date_id from gupiao where count(code)>3
*
ERROR 位于第 1 行:
ORA-00934: 此处不允许使用分组函数
create table gupiao(
date_id varchar2(12),
code number(6),
name varchar2(20),
hangye varchar2(80),
hangye_s varchar2(40),
district varchar2(20),
times number(4),
price number(12,2),
chengjiao number(12,2),
chengjiao_avg number(12,2),
scale number(8,2))插入的数据是:
2010-6-28 521 美菱电器 电器机械及器材制造业 家庭用品 安徽 1 10.2 101.96 101.96 3.84
2010-6-28 2221 东华能源 批发和零售贸易 石油与天然气生产 江苏 1 10.17 116.63 116.63 3.65
2010-6-28 2221 东华能源 批发和零售贸易 石油与天然气生产 江苏 1 10.17 116.63 116.63 3.68
现在若想2221出现两次,选择想用count(code)>1实现,并最终实现分组,如何处理?建表时没有涉及参数,望帮忙,谢谢!SQL> select code,name,date_id from gupiao group by code;
select code,name,date_id from gupiao group by code
*
ERROR 位于第 1 行:
ORA-00979: 不是 GROUP BY 表达式SQL> select code,name,date_id from gupiao where count(code)>3;
select code,name,date_id from gupiao where count(code)>3
*
ERROR 位于第 1 行:
ORA-00934: 此处不允许使用分组函数
SQL> select count(*) from gupiao; COUNT(*)
----------
1604 select code from gupiao group by code;
601678
601877 CODE
----------
601888已选择540行。SQL> select code,name,date_id,count(code) from gupiao group by code,name,date_id
having count(code)>1;未选定行
select code, name, date_id
from gupiao
where code in
(
select code
from gupiao
group by code
having count(code) > 3
);
from gupiao g1
where exists
(
select 1
from gupiao g2 where g1.code=g2.code
group by g2.code
having count(g2.code) > 3
);
那些原始数据我在我的资料里上传了个dmp文件,有玩股票的可以看一下,只是下载时,会扣1分,呵呵。结贴!;)