1

我的 tbl_sActivity 看起来像这样:

act_id | 客户编号 | 行为状态 | 用户 ID | act_date
1 | 7 | 温暖 | 1 | 2012年 19 月
7 日 2 | 7 | 成交| 1 | 30/7/12
3 | 8 | 热 | 1 | 2012
年 6 月 8 日 4 | 5 | 冷 | 22 | 2012
年 7 月 8 日 5 | 6 | 冷 | 1 | 2012年 16
月 7 日 6 | 6 | 温暖 | 1 | 12年 7 月 18
日 7 | 6 | 成交| 1 | 2012 年 7 月 8 日

我想从每个 user_id 的客户的最新状态中计算他们的 act_status。输出应该是这样的

用户 ID | 行为状态 | 计数(act_status)
1 | 成交| 2
1 | 热 | 1
22 | 冷 | 1

但我能做的只是显示他们的最新活动,没有任何功能。所以请帮助我。非常感谢你。

4

2 回答 2

1

我没有明白你的逻辑,简单的查询是这样的:

select user_id, act_status, count(act_Status)
from your_table
group by user_id, act_status

但为什么它在您的预期输出中没有用户 1 的“冷”?

编辑:

select user_id, act_status, count(act_Status)
from your_table
where act_date in (
    select  max(act_date)
    from your_table
    group by Client_id
)
group by user_id, act_status
于 2012-08-08T09:00:19.467 回答
0

怎么样:

SELECT act_status,
       user_id,
       Count(act_id) AS idcount
FROM   (SELECT a.act_id,
               a.act_status,
               a.user_id
        FROM   tbl_sActivity AS a
        WHERE  a.act_id  IN (SELECT TOP 1 act_id
                                   FROM   tbl_sActivity b
                                   WHERE  a.client_id = b.client_id
                                          AND a.user_id = b.user_id
                                   ORDER  BY act_date DESC) ) As x
GROUP  BY act_status,
          user_id 
于 2012-08-08T09:30:13.367 回答