在我的一个表中,我存储用户登录时的详细信息。
我想得到每个用户的重复出现次数。表示用户x、y、z已经登录了多少次。
SELECT count( id )
FROM user_stat
GROUP BY id
这只是给出了计数值。
1 id varchar(64) latin1_swedish_ci Yes NULL Change Change Drop Drop More Show more actions
2 login varchar(64) latin1_swedish_ci Yes NULL Change Change Drop Drop More Show more actions
3 city varchar(128) latin1_swedish_ci Yes NULL Change Change Drop Drop More Show more actions
4 ip varchar(128) latin1_swedish_ci Yes NULL Change Change Drop Drop More Show more actions
5 logout varchar(64) latin1_swedish_ci Yes NULL Change Change Drop Drop More Show more actions
6 diff varchar(64) latin1_swedish_ci Yes NULL Change Change Drop Drop More Show more actions
7 username varchar(64) latin1_swedish_ci Yes NULL Change Change Drop Drop More Show more actions
我想统计每个id
的重复出现细节。表示id为x
的人登录的次数。
这可能吗?
按login_id从
table_name
组中选择count(login_id)、login_id;
Here login_id means users_login_id. try it
如果你想要用户登录次数的用户信息,请在qry下面尝试
试试这个:-
SELECT count( id ),username,id
FROM user_stat
GROUP BY id
如果您愿意,您可以添加更多列。
我不确定"每个id的详细信息"是什么意思。如果"意味着有多少次id为x的人",那么下面的查询就是您想要的。
SELECT id, count(id)
FROM user_stat
GROUP BY id
顺便说一句,您的表格设计不是标准化。它应该分成两张桌子。一个用于login information
,一个用于user info
,所以下面会更好。
user_tbl(user_id, user_name);
user_stat(user_id, login, city, ip, logout, diff)
然后你的查询可以这样转换:
SELECT user_tbl.user_id, user_tbl.user_name, COUNT(*)
FROM user_tbl JOIN user_stat USING(user_id)
GROUP BY user_tbl.user_id, user_tbl.user_name