MAX (window function)
Compute the maximum value for an expression based on a window definition and an optional frame clause.
MAX ([ expression ]) OVER { window_name | ( [ window_definition ] ) }
For the full window_definition
syntax, see Syntax for Window Functions.
Note: The input
expression
for a MAX function cannot be a CHAR, VARCHAR, or
BOOLEAN data type.Example
For example, return the maximum
seasonid
from the season
table and partition the results by the winners
column. (In effect, this
query shows when each winning team last won the league, alongside a list of all the other
seasons when they were the
winners.)premdb=# select season_name, winners,
max(seasonid) over(partition by winners)
from season
where winners is not null
order by max desc;
season_name | winners | max
-------------+-------------------+-----
2015-2016 | Leicester City | 24
2004-2005 | Chelsea | 23
2005-2006 | Chelsea | 23
2009-2010 | Chelsea | 23
2014-2015 | Chelsea | 23
2011-2012 | Manchester City | 22
2013-2014 | Manchester City | 22
1992-1993 | Manchester United | 21
1993-1994 | Manchester United | 21
1995-1996 | Manchester United | 21
1996-1997 | Manchester United | 21
1998-1999 | Manchester United | 21
1999-2000 | Manchester United | 21
2000-2001 | Manchester United | 21
2002-2003 | Manchester United | 21
2006-2007 | Manchester United | 21
2007-2008 | Manchester United | 21
2008-2009 | Manchester United | 21
2010-2011 | Manchester United | 21
2012-2013 | Manchester United | 21
1997-1998 | Arsenal | 12
2001-2002 | Arsenal | 12
2003-2004 | Arsenal | 12
1994-1995 | Blackburn Rovers | 3
(24 rows)