oracle 查询问题:无法group by有重复值的字段吗?

来源:百度知道 编辑:UC知道 时间:2024/09/24 06:23:10
问题基于表
CREATE TABLE student
(
"NUMBER" varchar2(6) NOT NULL,
name varchar2(8) NULL,
sex number(1),
birthday timestamp NULL,
height number(3,2) NULL
);

insert into student ("NUMBER",name,sex,birthday,height) values ( '000001','黎明',1,TO_DATE('15-4月 -1980','dd-Mon-
yyyy'),1.78);
insert into student ("NUMBER",name,sex,birthday,height) values ( '000002','赵怡春',0,TO_DATE('17-12月 -1982','dd-Mon-
yyyy'),1.77);
insert into student ("NUMBER",name,sex,birthday,height) values ( '000003','张富平',1,TO_DATE('1-2月 -1981','dd-Mon-
yyyy'),1.80);
insert into student ("NUMBER",name,sex,birthday,height) values ( '000004','白丽',0,TO_DATE('20-11月 -1986','dd-Mon-
yyyy'),1.73);
insert into student ("NUMBER",name,sex,birthday,height) val

SELECT STUDENT.NAME,GRADE.NUMBER_,AVG(GRADE.GRADE) FROM GRADE
LEFT JOIN STUDENT ON GRADE.NUMBER_=STUDENT.NUMBER_
GROUP BY GRADE.NUMBER_,STUDENT.NAME HAVING AVG(GRADE.GRADE)>85

这个语句可以解决你的问题,注意,在设计表的时候一定要注意oracle的关键字,你的字段NUMBER是oracle的关键字,所以会报错,我在创建你的表的时候在NUMBER后加了一个下划线,建议在设计表的时候所有字段都加下划线,这个会避免出现类似的问题