【发布时间】:2014-08-28 00:08:19
【问题描述】:
我查看了一些使用联接获取组中最高值的示例,但我尝试过的方法不喜欢在内部联接之外使用别名。
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
然后我希望它为 start_date 的每一年显示两个日期之间差距最大的条目:
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
关于如何解决这个问题的任何建议?
【问题讨论】:
-
您在运行查询时是否遇到错误或结果与预期不符?