9

誰かSQLコマンドで私を助けてくれませんか?

以下のデータを持つテーブル (tbl_sActivity) があります。

ユーザー ID | client_id | act_status |
1 | 7 | 寒い |
1 | 7 | 取引 |
22 | 5 | 寒い |
1 | 6 | 寒い |
1 | 6 | 暖かい |
1 | 6 | ホット |
1 | 6 | 取引 |
1 | 8 | 暖かい |
1 | 8 | 取引 |
21 | 4 | 暖かい |
21 | 4 | 取引 |

出力は

ユーザー ID | Count_C_id |
 1 | 3 |
 21 | 1 |
 22 | 1 |

ネットから検索したところ、MS ACCESS は COUNT(DISTINCT) 関数を使用できないことがわかりました。だから私は何日もこの段階で立ち往生しています。

4

2 に答える 2

15

これを試してみてください。「トリック」は、最初にサブクエリを作成してユーザー ID とクライアント ID のすべての個別の組み合わせを取得し、次にユーザーごとにグループ化することです。

SELECT
    user_id
  , COUNT(*) AS count_distinct_clients
FROM
    ( SELECT DISTINCT
          user_id, 
          client_id
      FROM tbl_sActivity
    ) AS tmp
GROUP BY
    user_id ;
于 2012-08-15T07:17:01.977 に答える