2011-07-08 14 views
1

Iきたように見えるテーブル:私はアウトがROOT_IDが1つのグループに配置する必要がありのpostgresql:注文した結果

id | user_id | activity_id | activity_type | root_id | is_root | timestamp 
----+---------+-------------+---------------+---------+---------+----------- 
    7 |  3 |   20 | text   |  20 |  1 |  120 
    8 |  2 |   21 | text   |  20 |  0 |  130 
11 |  3 |   22 | text   |  20 |  0 |  150 
    9 |  3 |   22 | text   |  20 |  0 |  150 
10 |  3 |   22 | text   |  20 |  0 |  150 
    4 |  2 |   10 | text   |  10 |  1 |  50 
    5 |  1 |   11 | text   |  10 |  0 |  90 
    6 |  3 |   12 | text   |  10 |  0 |  100 
    1 |  1 |   1 | text   |  1 |  1 |   5 
    2 |  2 |   2 | text   |  1 |  0 |   6 
    3 |  3 |   3 | text   |  1 |  0 |  10 

のように入れたい

id | user_id | activity_id | activity_type | root_id | is_root | timestamp 
----+---------+-------------+---------------+---------+---------+----------- 
    1 |  1 |   1 | text   |  1 |  1 |   5 
    2 |  2 |   2 | text   |  1 |  0 |   6 
    3 |  3 |   3 | text   |  1 |  0 |  10 
    4 |  2 |   10 | text   |  10 |  1 |  50 
    5 |  1 |   11 | text   |  10 |  0 |  90 
    6 |  3 |   12 | text   |  10 |  0 |  100 
    7 |  3 |   20 | text   |  20 |  1 |  190 
    8 |  2 |   21 | text   |  20 |  0 |  130 
    9 |  3 |   22 | text   |  20 |  0 |  150 
10 |  3 |   22 | text   |  20 |  0 |  150 
11 |  3 |   22 | text   |  20 |  0 |  150 

、と最初の行のそのグループにはis_root = 1が必要です。グループはルートDESCのタイムスタンプに基づいてソートする必要がありますが、ルートの子はASC(タイムスタンプベース)

The relevant columns for the question is root_id, is_root, timestampにソートする必要があります。

何か助けていただければ幸いです。

ありがとうございました

答えて

2

あなたはこれについて話していますか?

ORDER BY root_id DESC, is_root DESC, timestamp 
+0

ああ...右...簡単です:)。私はなぜそれが私の頭の中に来ていないのではない:(とにかく、助けをありがとう – Mayank

2
order by root_id desc, is_root desc, timestamp asc 

トリックを行う必要があります。

関連する問題