please help, table
date column1 column2 trx 2015-07-01 **side1 internet** 777903315 2015-07-01 **side1 internet** 41426210 2015-07-01 side1 unlimited 2263500 2015-07-01 side1 business 427000 2015-07-01 side1 extreme 3540900 2015-07-01 side1 lifestyle 59360000 2015-07-01 side1 socialita 240850500 2015-07-01 **side2 unlimited** 6160 2015-07-01 **side2 unlimited** 113502000 and want select table result :
date column1 column2 trx type 2015-07-01 **side1 internet** 777903315 pre 2015-07-01 **side1 internet** 41426210 post 2015-07-01 side1 unlimited 2263500 pre 2015-07-01 side1 business 427000 pre 2015-07-01 side1 extreme 3540900 pre 2015-07-01 side1 lifestyle 59360000 pre 2015-07-01 side1 socialita 240850500 pre 2015-07-01 **side2 unlimited** 6160 post 2015-07-01 **side2 unlimited** 113502000 pre row have same value in column1 , column2 row after minimum trx add field type 'post' , maximun 'pre'
you can use following query:
select m.*, case trx when mintrx 'post' when maxtrx 'pre' else 'pre' end type mytable m left join ( select column1, column2, min(trx) mintrx, max(trx) maxtrx mytable group column1, column2 having min(trx) <> max(trx) ) t on m.column1 = t.column1 , m.column2 = t.column2 this query performs left join derived table containing duplicate column1, column2 rows. minimum / maximum trx matches produce post / pre values respectively, whereas pre default value non-matched table rows.
Comments
Post a Comment