正しい結果が得られないクエリがあります。次の表で都市の平均ステータスを取得しようとしています。
SNO SNAME STATUS CITY
s1 Smith 20 London
s2 Jones 10 Paris
s3 Blake 30 Paris
s4 Clark 20 London
s5 Adams 30 Athens
クエリは、すべての都市の平均都市ステータスを返す必要があります。結果が 26.667 であることはわかっていますが、そのままでは select ステートメントが機能しません。ここにあります:
select avg(rs1.status) as average
from rs rs1, rs rs2
where rs1.city=rs2.city;
そして、私が得る結果:
AVERAGE
---------------
21.11111111
私は何を忘れていますか?または、自己結合を行う必要はありませんか?
テーブルを作成するコード:
create table rs
( sno char(5) not null,
sname char(20) not null,
status smallint,
city char(15),
primary key (sno)
);
insert into rs (sno, sname, status,city)
values('s1', 'Smith', 20, 'London');
insert into rs
values('s2', 'Jones', 10, 'Paris');
insert into rs
values('s3', 'Blake', 30, 'Paris');
insert into rs
values('s4', 'Clark', 20, 'London');
insert into rs
values('s5', 'Adams', 30, 'Athens');