2016-12-29 16 views
0

こんにちは私は、2つの特定のコードが関連付けられているIDSの番号を教えてくれるSQLでカウントクエリを実行しようとしています。私が持っている問題は、テーブルの構造にあります。複数の値の重複IDによるSQLのフィルタリング

enter image description here

だから、例えば私はPatient_ID ZZZZZ02SDUが2022Fと3060FのCPT_codeを持って知っているが、彼らは別の行に両方です。

どのようにすべての重複IDを1回だけカウントし、それらのpatient_id行に添付されているすべてのCPT_codeをフィルタリングすることもできますか?

+0

http://meta.stackoverflow.com/question/285551 /なぜか私のアップロードしない画像コードのオン・ザ・コード・オン・ザ・質問/ 285557#285557 –

+0

どのDBMSを使用していますか? Postgres?オラクル? –

+0

「このpatient_id行に添付されているすべてのCPT_コードがフィルタリングされる」とはどういう意味ですか?あなたが望む出力の例を教えてください。 – Schwern

答えて

0

HAVINGフィルタでこれを行うことができます。これはGROUP BYの後に行われます。

SELECT PATIENT_ID, COUNT(DISTINCT CPT_CODE) 
FROM tablename 
GROUP BY PATIENT_ID 
HAVING COUNT(DISTINCT CPT_CODE) > 1 

これは、複数のCPT_CODEを持つすべてのPATIENT_IDを提供します。

0
select count(*) from (
    select count(*) AS S from table group by Patient_id having count(*)=2) 
group S; 

私が持っている唯一のカウントが最初にPatient_idとをそれぞれ有する2つのエントリで、テーブルの行をグループ化し、それらは基本的に最も外側のクエリでの答えとしてカウントして入れているためopが尋ねたよう。

+0

あなたはあなたの答えの周りにもう少し文脈を加えてください。コードのみまたはリンクのみの回答は理解しにくいです。あなたの投稿にさらに情報を追加することができれば、これはAskerと将来の読者に役立ちます。 – RBT

+1

@RBT .:私の答えをチェック... btw提案のおかげで。 – coderredoc

0

あなたはSQL ServerまたはOracleである場合は、次のSQLを使用することができます:THOS特定のコードは、このされている場合

WITH PatientMedicalCodes AS 
(
    SELECT DISTINCT Patient_ID, CPT_code 
    FROM table_name 
) 
SELECT Patient_ID, COUNT(CPT_code) 
FROM PatientMedicalCodes 
GROUP BY Patient_ID 
HAVING COUNT(CPT_code) > 1 
0

わからないが:

select distinct a. patient_id 
    from mytable a inner join mytable b 
    on a.patient_id=b.patient_id 
where a.cpt_code='2022F' and b.cpt_code='3060F' 
関連する問題