FIRST_VALUE() returns the first value in the window's range.
FIRST_VALUE(expr) OVER(partition_by_clause order_by_clause [window_clause])
We have the following data
select name, country, greeting from mail_merge; | name | country | greeting | |---------|---------|--------------| | Pete | USA | Hello | | John | USA | Hi | | Boris | Germany | Guten tag | | Michael | Germany | Guten morgen | | Bjorn | Sweden | Hej | | Mats | Sweden | Tja |
Use FIRST_VALUE() to group by country and return the value of the first greeting in each group:
select country, name, first_value(greeting) over (partition by country order by name, greeting) as greeting from mail_merge; | country | name | greeting | |---------|---------|-----------| | Germany | Boris | Guten tag | | Germany | Michael | Guten tag | | Sweden | Bjorn | Hej | | Sweden | Mats | Hej | | USA | John | Hi | | USA | Pete | Hi |
WINDOW,FUNCTION,FIRST_VALUE