2016-06-20 11 views
0

私は2つのカラムaとbを持つテーブルを持っています。ここで、aはIDで、bはタイムスタンプです。 別名であるすべてのaを選択する必要がありますが、IDごとに最新の行のみを気にします。Postgresはタイムスタンプに基づいて別のものを選択します

I.e.私は、b値に対して別のaの条件を選択する方法が必要です。

ポストグルでDISTINCT ONを使用してこれを行う方法はありますか?

乾杯

+3

'によってthe_table順から(a)のA、B、Bのdesc'に異なる選択しますか? –

+0

最新の情報: 'select * from ztable t whereは存在しません(select * from ztable x where x.a = t.a and x.b> t.b); ' – joop

+0

a_horse_with_no_name - DISTINCTの前後に順序が適用されますか? @ joopあなたはそれがどのように動作するかを説明することができます。私はそれを受け入れたものとしてマークします – JMzance

答えて

3

@a_horse_with_no_nameが示唆するように、溶液はthe manualとして

SELECT DISTINCT ON (a) a, b FROM the_table ORDER BY a, b DESC 

あるセットの "最初の行" は、クエリ ない限り、予測不可能であること

注言います行の一意の順序を保証するのに十分な列にソートされます はDISTINCTフィルターに到着します。 (DISTINCT ON処理 ORDER BYソート後に起こる。)

関連する問題