Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何找到租金价格的最大范围?_Mysql_Mysql Workbench - Fatal编程技术网

Mysql 如何找到租金价格的最大范围?

Mysql 如何找到租金价格的最大范围?,mysql,mysql-workbench,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

我想从不同的建筑中找出最广泛的租金范围

公寓表和数据:

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

谢谢你的帮助

要获得所有建筑物的最低和最高租金:

select buildingid, min(rent) min_rent, max(rent) max_rent
from apartment
group by buildingid
如果希望建筑物具有最大范围,请添加:

order by max_rent-min_rent desc
limit 1

如果你也感兴趣,哪一个appno的租金最低和最高

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
dbfiddle

我看不出有人试图解决上述问题。请定义范围。定义最宽的范围。这是最高的租金和最低的租金。我明白了!谢谢您对该样本数据的预期结果是什么?
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