1

名前と電話番号のリストを含む数百万のレコードがあります。一意の電話番号ごとに何人の人が関連付けられているかをカウントする必要があります。電話番号は、重複した名前と一意の名前に関連付けられています。したがって、電話番号ごとに、個別のユーザー数をカウントする必要があります。次に、これを店舗のリストにマップする必要があります。個別の電話/個別の電話を選択しようとしましたが、分布の比率しか得られません。たとえば、10 人が 3 台の電話を使用している場合、私の比率は 3 台の電話が 10 人に分配されていることを示していますが、電話に関連付けられた分布内の実際の人数はわかりません。同じ電話番号に関連付けられている電話の数を正確に把握している正しいカウントを取得するために、SASコードを手伝ってください。前もって感謝します。-r

4

2 に答える 2

1

同じ電話番号を持つ個別の行の数だけが必要な場合は、次を使用します。

proc sql;
create table phone_number_counts as
 select phonenumber, count(1) as count_users
 from dset
 group by phonenumber;
quit;

電話番号内の個別の名前を見つけたい場合、つまり、555-123-4567 John H 555-123-4567 John H 555-123-4567 Mary Y の場合

3 ではなく 2 になるはずです (最初のコードは 3 になります) count(distinct name)count(1).

他の何かが必要な場合は、いくつかのサンプル データが役立つ場合があります。つまり、初期データの例と正しい最終データセットの例が役立ちます。

于 2012-12-12T21:27:49.347 に答える
0

私はあなたが探していると信じていますcount(distinct name)

proc sql;
  create table phone_number_counts as
  select phonenumber, 
         count(*) as count_rows,
         count(distinct name) as unique_names
  from dset
  group by phonenumber;
quit;
于 2012-12-15T17:35:40.570 に答える