如何根据几个字段删除重复项

时间:2017-09-07 22:39:05

标签: mysql group-by

我有这个MySQL表(sqlfiddle):

CREATE TABLE `units` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `location_id` int(11) DEFAULT NULL,
  `price` int(11) DEFAULT NULL,
  `square` decimal(11,2) DEFAULT NULL,
  `year` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

INSERT INTO `units` VALUES 
(1,1,1500000,150.00,2010),
(2,1,2000000,150.70,2010),
(3,2,1800000,66.00,2013),
(4,3,3000000,75.00,2015),
(5,3,2400000,54.00,2015),
(6,4,1500000,78.50,2014),
(7,4,1400000,78.00,2014),
(8,4,1450000,79.00,2014),
(9,5,2600000,110.00,2017),
(10,6,2700000,124.00,2017);

id  location_id price   square  year
1   1           1500000 150     2010
2   1           2000000 150.7   2010
3   2           1800000 66      2013
4   3           3000000 75      2015
5   3           2400000 54      2015
6   4           1500000 78.5    2014
7   4           1400000 78      2014
8   4           1450000 79      2014
9   5           2600000 110     2017
10  6           2700000 124     2017

现在,我想删除每个地区的重复项,其中年份的地方和舍入值之间的平方不同,并获得组中的最低价格。因此,如果我们对location_id = 1 and year = 2010进行分组,那么我们应该检查此群组square中是否between 150 and 151,并选择ID min(price)

我想看到的结果是:

id
1
3
4
5
7
9
10

是否可以只使用一个查询?欢迎任何建议。

0 个答案:

没有答案