在我的一个表格中,我会在登录时存储用户详细信息。
我希望得到每个用户的重复发生次数。表示用户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
的重复出现详情。表示身份x
的人已经入狱的时间。
这可能吗?
答案 0 :(得分:1)
通过login_id从
table_name
组中选择count(login_id),login_id;
Here login_id means users_login_id. try it
答案 1 :(得分:1)
如果您希望用户信息计算用户登录的时间,请尝试使用qry 试试这个: -
SELECT count( id ),username,id
FROM user_stat
GROUP BY id
如果需要,您可以添加更多列。
答案 2 :(得分:0)
我不确定“每个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