各列の日付の最大値を取得する方法。
こんにちは、英語で申し訳ありませんが、私の問題の簡単な履歴書を作成します。
私はpostgresqlを使用しています。いくつかの列を持つテーブルが1つあります。重要なのは、A、B、C、およびDであり、日付(F)を持つ別のテーブルがあります。
私は、a、b、および c のそれぞれに対して (組み合わせて) 日付 (F) が a、b、および c の最大値である D の値を取得したいと思います。
何か案が?
各列の日付の最大値を取得する方法。
こんにちは、英語で申し訳ありませんが、私の問題の簡単な履歴書を作成します。
私はpostgresqlを使用しています。いくつかの列を持つテーブルが1つあります。重要なのは、A、B、C、およびDであり、日付(F)を持つ別のテーブルがあります。
私は、a、b、および c のそれぞれに対して (組み合わせて) 日付 (F) が a、b、および c の最大値である D の値を取得したいと思います。
何か案が?
試す:
SELECT GREATEST(A,B,C)
FROM table1
それはあなたに最大のものを与えるでしょうA,B,C
。それで:
SELECT GREATEST(A,B,C), D
FROM table1
JOIN table2 ON GREATEST(A,B,C) = F
詳細:最高
代わりにこれを試してください..
with cte as (
select 1 as A, 1 as B, 1 as C, 'Hello' as D, '12/1/2012'::date as F
union select 1,2,1,'Hello2','12/2/2012'
union select 1,1,1,'Hello3','12/5/2012'
)
select a.*
from cte a
join (
select A,B,C, MAX(F) F
from cte
group by A,B,C
) b
on a.A = b.A
and a.B = b.B
and a.C = b.C
and a.F = b.F