我的tbl_sActivity看起来像这样:
act_id | Client_id | act_status | user_id | act_date
1 | 7 |暖| 1 | 19/7/12
2 | 7 | dealed | 1 | 30/7/12
3 | 8 |热点| 1 | 12年6月8日
4 | 5 |冷| 22 | 12年7月8日
5 | 6 |冷| 1 | 16/7/12
6 | 6 |暖| 1 | 18/7/12
7 | 6 | dealed | 1 | 12年7月8日
我想从每个user_id客户端的最新状态算起act_status。输出应该像这样
user_id | act_status |伯爵(act_status)
1 | dealed | 2
1 |热点| 1
22 |冷| 1
但我能做的只是展示他们没有任何功能的最新活动。所以请帮助我。非常感谢你。
答案 0 :(得分: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
答案 1 :(得分: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