2017-02-22 5 views
2

チケット履歴テーブルが1つある状況があります。チケットに対して行われたすべてのアクションを保存します。特定のチケットに対して最初のレコードと最後のレコードを返すクエリを書く方法。例えばテーブルから1つの外部キーに対して最初と最後の行を取得する方法

enter image description here

上記表中の私は日付の列に基づいて、最初の行と最後の行を取得したいID 78580.と1枚のチケットをしました。

答えて

2

だけrow_number()使用:チケットIDごとにグループ化され、最初と最後の日付を取得するために

select t.* 
from (select t.*, 
      row_number() over (partition by ticket_id order by action_when asc) as seqnum_a, 
      row_number() over (partition by ticket_id order by action_when desc) as seqnum_d 
     from tickets t 
    ) t 
where seqnum_a = 1 or seqnum_d = 1; 
+0

もう一つの問題は、それが可能である –

2

使用最小値と最大値を。私が参加し、この中に使用できるかどうか...私は1枚のチケットでそれをフィルタリングして、最初と最後の行を抽出したいので

SELECT ticket_id, min(action_when), max(action_when) 
FROM table_name 
GROUP BY ticket_id; 
+0

両方の回答の組み合わせは、私の問題を解決しました:) –

関連する問題