Oracleベースのシステムを使用しています。
like、having、caseステートメントを一緒にどのように使用しますか?
私は基本的に、4つを超える「クラスA」トランザクションまたは1つを超える「クラスB」トランザクションを持つトランザクションテーブルで見つかったすべての一意の個人をリストしようとしています。私が使用したい理由like
は、トランザクションクラスを区別する唯一の方法はlike
、トランザクションタイプ列のステートメントを使用することであるためです。
たとえば、多くのトランザクションタイプがありますが、トランザクションタイプの一部として含まれているのは「クラスA」のみであり、「クラスB」は、トランザクションタイプ列に'%ABC%'
ない他のすべてのタイプです。'%ABC%'
繰り返しになりますが、クエリで4つを超える「クラスA」トランザクションまたは1つの「クラスB」トランザクションを持つ個人IDのみを返すようにします。
これが私がこれまでに持っているものです:
select tt.indiv_id, count(*) from transactiontable tt
group by tt.indiv_id
case when tt.tran_type like '%ABC'
having count(*) > 4
else
having count(*)>1.
私はサイトでかなり検索しましたが、これらの機能をすべて一緒に使用した例は見つかりませんでした。