特定の文字列が発生する回数をカウントする必要がありますが、1つのIDが同じ文字列を複数回含む場合は、1回だけカウントします。基本的には、IDに対して一意的に発生する文字列の出現回数を数える必要があります。これは簡単なことだと思いますが、私が何をしているのか分かりません。ここに私の現在のコードは次のとおりです。一意のIDを持つ文字列のインスタンスをカウントする
SELECT
RXNAME as Name,
DUPERSID as ID,
COUNT(RXNAME) as Number
FROM
`OmniHealth.PrescriptionsMEPS`
GROUP BY
ID,
Name
ORDER BY
Number
実行すると、それはすべてが助けを1感謝としてカウントしたと言います!
UPDATE: データセット:上記のコードで実行https://storage.googleapis.com/omnihealth/MepsPrescriptionData.csv
OUTPUT:
Row Name ID Number
1 SUMATRIPTAN 68896102 1
2 IBUPROFEN 65063102 1
3 PENICILLN VK 66179101 1
4 FUROSEMIDE 63217102 1
5 HYSINGLA ER 70373101 1
6 FUROSEMIDE 76090101 1
7 SKELETAL MUSCLE RELAXANTS 78414101 1
8 AMOXICILLIN 69467103 1
9 TRAMADOL HCL 67667101 1
10 PANTOPRAZOLE 60737102 1
11 CARBAMIDE PEROXIDE 6.5% OTIC SOLN 63990104 1
12 PROMETH/COD 68433101 1
13 AZITHROMYCIN 79045102 1
14 METRONIDAZOL 75414101 1
15 DEXILANT 69625101 1
16 TRAMADOL HCL 66890203 1
17 AZITHROMYCIN 73838101 1
18 COLCRYS 63856102 1
19 PERMETHRIN 62103107 1
20 ACETAMINOPHEN TAB 500 MG 62456102 1
名前とIDでグループ化すると、各IDのすべての名前が区別されます。クエリは正しいです。データに重複がない可能性があります。 –
....おそらくサンプル開始データセットと望みの結果が私たちに啓示されます。 –
私は問題を参照して、私はそこにデータセットの名前フィールドがあると確信しています。フィールドエイリアスは、定義されているのと同じレベルでは使用できません。あなたはIDであるGROUP BY、RXNAMEが必要です。 –