计算表中重复记录的次数

时间:2013-11-30 07:35:34

标签: mysql sql

在我的一个表格中,我会在登录时存储用户详细信息。

我希望得到每个用户的重复发生次数。表示用户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的人已经入狱的时间。

这可能吗?

3 个答案:

答案 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