表:统计
id | user | Message
----------------------
1 | user1 |message1
2 | user2 |message2
3 | user1 |message3
我能够使用此查询找到每个用户发送的消息数。
select user, count(*) from statistics group by user;
如何显示消息列数据和计数?例如
user | count | message
------------------------
user1| 2 |message1
|message3
user2| 1 |message2
你似乎想显示Count
由user
,message
发送的user
。
如果你的mysql版本不支持窗口函数,你可以row_number
在select子查询中做子查询,然后只显示rn=1
用户和计数
CREATE TABLE T(
id INT,
user VARCHAR(50),
Message VARCHAR(100)
);
INSERT INTO T VALUES(1,'user1' ,'message1');
INSERT INTO T VALUES(2,'user2' ,'message2');
INSERT INTO T VALUES(3,'user1' ,'message3');
查询 1:
SELECT (case when rn = 1 then user else '' end) 'users',
(case when rn = 1 then cnt else '' end) 'count',
message
FROM (
select
t1.user,
t2.cnt,
t1.message,
(SELECT COUNT(*) from t tt WHERE tt.user = t1.user and t1.id >= tt.id) rn
from T t1
join (
select user, count(*) cnt
from T
group by user
) t2 on t1.user = t2.user
) t1
order by user,message
结果:
| users | count | message |
|-------|-------|----------|
| user1 | 2 | message1 |
| | | message3 |
| user2 | 1 | message2 |
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句