I have the following query:
select id, table1.date1, table2.date2, table1.name
from table1
join table2 using (id)
I want also to have another column with MAX(table1.date1, table2.date2)
but I don't find the proper syntax for that. I don't want MAX to go over all rows in table and take MAX() I want it to select max from the two values specified in the row.
Example:
id date1 date2 name max
1 2020-01-01 2020-04-01 A 2020-04-01
2 2019-02-01 2020-01-03 B 2020-01-03
3 2019-02-01 null c 2019-02-01
I can't also do group by because I don't want to group anything here.
It's more similar to coalesce
give a function list of values and choose the max value from it
Use greatest()
:
select id, t1.date1, t2.date2, t1.name,
greatest(t1.date1, t2.date2)
from table1 t1 join
table2 t2
using (id);
Note that greatest()
returns NULL
if any argument is NULL
. So, if you have NULL
values, you will need special care.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With