我有一个 login_log
表:
我正在尝试根据 login_email、login_success、login_email、account_type_id、login_lock、login_ip
到目前为止我已经
SELECT count(*) count, MAX(login_date) date, login_ip, login_email, account_type_id, login_lock, login_success
FROM `login_log`
GROUP BY login_email, login_success, login_email, account_type_id, login_lock, login_ip
ORDER BY date DESC
这让我:
但以第 5 行和第 6 行为例。在 6 上,用户在第 5 行成功登录之前失败了 3 次。第 5 行的计数应为 1,但它会将失败尝试之前的成功登录归为一组。
我想要的是登录成功一行,登录失败一行,登录成功一行,按日期排序。
如何对日期查询进行分组,使它们不会相互“跳跃”?
最佳答案
您的查询的问题是您没有在分组依据部分按日期分组。结果,您的 Count(*) 不必要地增加了。
添加:
Group By Date
会工作,但可能不会为您提供正确的时间间隔。添加 MySQL Date() 函数将允许您按天拆分它,因此您可以添加:
Group By Date(Date)
您可能还想将别名 Date 更改为非保留的 MySQL 关键字,例如 LogDate 或类似的东西。
有关 MySQL 日期/时间函数的更多信息: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
关于mysql - 按日期分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10094926/