mysql - 按日期分组

标签 mysql group-by

我有一个 login_log 表: enter image description here

我正在尝试根据 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

这让我: enter image description here

但以第 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/

相关文章:

sql - 同时按两列分组,分组方式匹配col1,col2和col2,col1

mysql - 使用更多关键字使用 Levenshetein 算法进行搜索

java - SQL 查询保证返回空

MySQL 和使子查询更高效

mysql - mariaDB 外键中的奇怪错误

php - 永久链接不适用于 MySQL 数据库

mysql - 获取 4 个不同列的唯一分组依据值

php - 如何在PHPExcel中创建动态图表

mysql - 如何使用大型数据集(数百万行)的连接和子查询优化 MySQL 查询

python - 在 pandas Dataframe 中按级别创建计数器,优化