如何解决MySQL查询可以获取不同的登录ID以及有多少个
|| 我有一个数据库,每次用户登录到系统时都会添加一个新行。我想做的是首先进行查询,该查询通过散列的用户ID获取不同的条目。我能做的SELECT disTINCT似乎是我们的朋友。但是,在此之后,我仍然希望能够根据每个用户ID获得用户登录次数的计数。 例如,如果Max登录3次,Sally登录2次,那么我的数据库中将有5行。通过他们的用户ID运行SELECT disTINCT之后,只需给我一个Max和一个Sally用户ID。但是,获得这些信息之后,我希望能够创建存储以下信息的哈希映射: 最大值=> 3 莎莉=> 2 有没有一种使用纯sql或大多数纯sql的方法可以有效地实现这一点,还是我应该简单地从所有登录数据库行中取出并自己搜索和编译信息。我知道我可以用这种方法来做,但是感觉有点慢。谢谢解决方法
您可以使用\“ GROUP BY \”运算符在SQL中执行此操作。例如:
SELECT user_id,count(*) FROM USERS GROUP BY user_id
,SELECT username,COUNT(*) AS LoginCount FROM logintable GROUP BY username
,SELECT login,COUNT(login) FROM yourtable GROUP BY login
,当然...
选择
hashed_user_id,count(*)
从
表名
按hashed_user_id分组
,如果您提供表格结构,答案可能更具体:
但是,这通常是带有group by的聚合函数,如下所示:
select user,count(user)
from access_log
group by user
,像您所说的那样进行计数是不必要的开销。我的建议是在用户表\'logincount \'中添加一个额外的字段,并在用户每次登录时+1。更快。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。