2017-06-22 1 views
0

私のテーブル名はAGENTWISEMONTHLYREPORTで、フィールドは次のようプットはアウト期待USER_IDMONTH_YEARNO_FO_TICKETS特定のユーザーoracleの3つの行を合計することは可能ですか?カウント機能やその他の機能を

USER_ID MONTH_YEAR NO_FO_TICKETS 
iciseva00031 201706 8 
iciseva00031 201705 22 
iciseva00031 201704 29 
iciseva00031 201703 30 
iciseva00031 201702 26 
iciseva00031 201701 14 
iciseva00031 201612 14 
iciseva00031 201611 14 
iciseva00031 201610 34 
iciseva00031 201609 25 
iciseva00031 201608 109 
iciseva00031 201607 11 

です:

userid   sum(no_of_tickets) 
iciseva00031 151 
iciseva00031 60 

それらの合計(no_of_ticketsは)の合計であります3行ごと。いずれにしても私を助けることができるのは です。

+0

あなたも私たちを見ることができます期待される出力?また、これまで問題を解決するために何か試してみましたか? –

+1

なぜそれはmysqlとoracleですか?あなたは両方が必要ですか? – user7294900

+0

リプレイのために@ Giorgos Betsosに感謝します。私は期待通りに編集しました – bharathRaj

答えて

0

四半期(3ヶ月)でグループ化すると、あなたが後にしているものです場合は、Oracle SQLにあなたがこれを行うことができます:

select user_id, 
     floor(to_number(month_year)/100) year, 
     1 + floor((mod(to_number(month_year), 100) - 1)/3) quarter, 
     sum(no_fo_tickets) sum_tickets 
from  mytable 
group by user_id, 
     floor(to_number(month_year)/100), 
     1 + floor((mod(to_number(month_year), 100) - 1)/3) 
order by 1, 2 desc, 3 desc; 

を出力は次のようになります:

user_id | year | quarter | sum_tickets 
-------------+------+---------+------------ 
iciseva00031 | 2017 | 2 | 59 
iciseva00031 | 2017 | 1 | 70 
iciseva00031 | 2016 | 4 | 62 
... etc 
+0

@ trincotさん、その働きに感謝します。 – bharathRaj

+0

私は最後の四半期だけを望んでいます、どうすれば達成できますか? – bharathRaj

+0

'row_number()over'を使用すると、user_idごとに行番号を取得し、その数値(<= 4)の外部クエリを制限できます。助けが必要な場合は新しい質問をしてください。しかし、その情報で多くの同様の質問と回答を見つけることができます。 – trincot

関連する問題