我已经查看了一些使用连接来获取组中最高值的示例,但我尝试的方法不喜欢使用内部连接之外的别名。在SQL内部连接中使用别名
SELECT f.year, f.name, f.date_start, f.date_end, f.max_year FROM ( SELECT EXTRACT(year FROM date_start) AS year, MAX(DATEDIFF(date_end,date_start)) AS max_year FROM mytable GROUP BY year ) AS x inner join mytable AS f on f.year = x.year and f.max_year = x.max_year;
所以,如果我有一个表:
Name date_start date_end John 1950-04-05 1960-07-08 Jack 1950-04-06 1960-12-31 Mark 1954-01-01 1970-01-01 Jane 1954-10-10 1978-10-01
然后,我希望它弹出有两个日期之间的最大差距的条目,每一年的起始日期为:
Year Name date_start date_end max_year 1950 Jack 1950-04-06 1960-12-31 3922 1954 Jane 1954-10-10 1978-10-01 8758
任何的如何解决建议 这个?
当您运行查询或结果与预期不符时,是否收到错误消息? – Bulat 2014-08-27 15:45:31