我正在尝试找到不同建筑物的租金价格范围。
公寓表和数据:
CREATE TABLE apartment
( buildingid CHAR(3) NOT NULL,
aptno CHAR(5) NOT NULL,
anoofbedrooms INT NOT NULL,
ccid CHAR(4),
rent INT NOT NULL);
INSERT INTO apartment VALUES ('B1','11',1,'C111',1000);
INSERT INTO apartment VALUES ('B1','21',1,'C111',1050);
INSERT INTO apartment VALUES ('B1','31',1,'C333',1100);
INSERT INTO apartment VALUES ('B1','41',1,null,1200);
INSERT INTO apartment VALUES ('B1','51',1,null,1010);
INSERT INTO apartment VALUES ('B2','11',2,'C222',1200);
INSERT INTO apartment VALUES ('B2','21',2,'C222',1300);
INSERT INTO apartment VALUES ('B2','31',2,null,2000);
INSERT INTO apartment VALUES ('B2','41',2,null,1000);
INSERT INTO apartment VALUES ('B2','51',2,'C111',1080);
INSERT INTO apartment VALUES ('B2','61',2,'C111',1500);
INSERT INTO apartment VALUES ('B3','11',2,'C777',1400);
INSERT INTO apartment VALUES ('B3','21',2,'C777',1005);
INSERT INTO apartment VALUES ('B3','31',2,'C555',2200);
INSERT INTO apartment VALUES ('B3','41',2,'C555',2030);
INSERT INTO apartment VALUES ('B4','11',2,'C777',2400);
INSERT INTO apartment VALUES ('B4','21',2,'C777',2050);
INSERT INTO apartment VALUES ('B4','31',2,'C222',2600);
INSERT INTO apartment VALUES ('B4','41',2,'C222',2070);
INSERT INTO apartment VALUES ('B5','11',3,'C555',2800);
INSERT INTO apartment VALUES ('B5','21',3,null,3800);
INSERT INTO apartment VALUES ('B5','31',3,'C111',1800);
INSERT INTO apartment VALUES ('B6','11',1,'C111',2200);
INSERT INTO apartment VALUES ('B6','12',1,'C111',2300);
INSERT INTO apartment VALUES ('B6','21',1,'C444',2400);
INSERT INTO apartment VALUES ('B6','22',1,'C444',2500);
INSERT INTO apartment VALUES ('B6','31',1,'C555',2600);
INSERT INTO apartment VALUES ('B6','32',1,'C333',2700);
INSERT INTO apartment VALUES ('B7','11',3,'C999',2800);
INSERT INTO apartment VALUES ('B7','12',3,'C999',800);
INSERT INTO apartment VALUES ('B7','13',3,'C999',900);
INSERT INTO apartment VALUES ('B7','21',3,null,700);
INSERT INTO apartment VALUES ('B7','22',3,'C222',600);
INSERT INTO apartment VALUES ('B7','23',3,'C111',860);
INSERT INTO apartment VALUES ('B8','11',2,'C777',870);
INSERT INTO apartment VALUES ('B8','12',2,'C777',880);
INSERT INTO apartment VALUES ('B8','21',2,'C444',1890);
INSERT INTO apartment VALUES ('B8','22',2,'C444',2890);
INSERT INTO apartment VALUES ('B8','31',2,null,1840);
INSERT INTO apartment VALUES ('B8','32',2,null,1830);
INSERT INTO apartment VALUES ('B8','41',2,'C666',1830);
INSERT INTO apartment VALUES ('B8','42',2,'C666',1830);
INSERT INTO apartment VALUES ('B9','11',2,'C111',2800);
INSERT INTO apartment VALUES ('B9','21',2,'C222',1890);
INSERT INTO apartment VALUES ('B9','31',2,'C222',890); `
我尝试使用max函数。但不确定会不会给我最大范围的机会。在数字集和建筑物之间找到最大范围的功能是什么?
SELECT buildingid, max(rent) as rent
FROM apartment
group by buildingid
谢谢您的帮助!
答案 0 :(得分:0)
要获得所有建筑物的最低和最高租金:
select buildingid, min(rent) min_rent, max(rent) max_rent
from apartment
group by buildingid
如果要使建筑物具有最大的范围,请添加:
order by max_rent-min_rent desc
limit 1
答案 1 :(得分:0)
如果您也是感兴趣的人,那么哪个appno可以获得最低和最高的租金
SELECT a.buildingid, aptno,rent, maxrent, minrent as rent FROM apartment a inner Join (SELECT buildingid, MAX(rent) maxrent,MIN(rent) minrent FROM apartment group by buildingid) b on a.buildingid = b.buildingid and (a.rent = b. maxrent or a.rent = b.minrent)
buildingid | aptno | rent | maxrent | rent :--------- | :---- | ---: | ------: | ---: B1 | 11 | 1000 | 1200 | 1000 B1 | 41 | 1200 | 1200 | 1000 B2 | 31 | 2000 | 2000 | 1000 B2 | 41 | 1000 | 2000 | 1000 B3 | 21 | 1005 | 2200 | 1005 B3 | 31 | 2200 | 2200 | 1005 B4 | 21 | 2050 | 2600 | 2050 B4 | 31 | 2600 | 2600 | 2050 B5 | 21 | 3800 | 3800 | 1800 B5 | 31 | 1800 | 3800 | 1800 B6 | 11 | 2200 | 2700 | 2200 B6 | 32 | 2700 | 2700 | 2200 B7 | 11 | 2800 | 2800 | 600 B7 | 22 | 600 | 2800 | 600 B8 | 11 | 870 | 2890 | 870 B8 | 22 | 2890 | 2890 | 870 B9 | 11 | 2800 | 2800 | 890 B9 | 31 | 890 | 2800 | 890
db <>提琴here