如何找到最广泛的租金价格?

时间:2019-12-13 20:11:54

标签: mysql mysql-workbench

我正在尝试找到不同建筑物的租金价格范围。

公寓表和数据:

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

谢谢您的帮助!

2 个答案:

答案 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