我有一个包含时区的表,如下示例所示:
CREATE TABLE timezones
(`CountryCode` varchar(2),
`ZoneName` varchar(35),
`Offset` int not null,
`Dst` char(1),
`TimeStart` decimal(11,0) not null);
INSERT INTO
timezones (`CountryCode`, `ZoneName`, `Offset`, `Dst`, `TimeStart`)
VALUES
('VA', 'Europe/Vatican', 7200, '1', 1521939600),
('VA', 'Europe/Vatican', 3600, '0', 1540688400),
('VA', 'Europe/Vatican', 7200, '1', 1553994000),
('UA', 'Europe/Zaporozhye', 10800, '1', 1521939600),
('UA', 'Europe/Zaporozhye', 7200, '0', 1540688400),
('UA', 'Europe/Zaporozhye', 10800, '1', 1553994000),
('TR', 'Europe/Istanbul', 7200, '0', 1446944400),
('TR', 'Europe/Istanbul', 7200, '1', 1459040400),
('TR', 'Europe/Istanbul', 10800, '0', 1473195600);
+-------------+-------------------+--------+------+------------+ | CountryCode | ZoneName | Offset | Dst | TimeStart | +-------------+-------------------+--------+------+------------+ | VA | Europe/Vatican | 7200 | 1 | 1521939600 | | VA | Europe/Vatican | 3600 | 0 | 1540688400 | | VA | Europe/Vatican | 7200 | 1 | 1553994000 | | UA | Europe/Zaporozhye | 10800 | 1 | 1521939600 | | UA | Europe/Zaporozhye | 7200 | 0 | 1540688400 | | UA | Europe/Zaporozhye | 10800 | 1 | 1553994000 | | TR | Europe/Istanbul | 7200 | 0 | 1446944400 | | TR | Europe/Istanbul | 7200 | 1 | 1459040400 | | TR | Europe/Istanbul | 10800 | 0 | 1473195600 | +-------------+-------------------+--------+------+------------+
我需要选择具有唯一 ZoneName
字段且在 TimeStart
列中具有最大值的行。
因此,对于上表,我期望得到以下结果:
+-------------+-------------------+--------+------+------------+ | CountryCode | ZoneName | Offset | Dst | TimeStart | +-------------+-------------------+--------+------+------------+ | VA | Europe/Vatican | 7200 | 1 | 1553994000 | | UA | Europe/Zaporozhye | 10800 | 1 | 1553994000 | | TR | Europe/Istanbul | 10800 | 0 | 1473195600 | +-------------+-------------------+--------+------+------------+
最佳答案
这是一个过滤操作。您可以使用相关子查询:
select t.*
from t
where t.timestart = (select max(t2.timestart) from t t2 where t2.ZoneName = t.ZoneName);
关于mysql - 按列中的最大值选择唯一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56479374/