gpt4 book ai didi

mysql - 计算操作次数并显示操作的最后日期

转载 作者:太空宇宙 更新时间:2023-11-03 12:10:16 25 4
gpt4 key购买 nike

我正在查询一个审计数据库,试图找出每个用户完成了多少次操作以及他们最后一次操作的时间。

我正在使用的查询是:

SELECT user_id, 
count(id) as actions,
datetime
from auditing
WHERE datetime>='2014-03-01 00:00:00'
GROUP BY user_id
ORDER BY `auditing`.`datetime` DESC

这正确地向我显示了项目总数,但它没有显示正确的最后日期 - 它确实向我显示了它非常随机的日期,即不在列表的顶部或底部,而是从中间的某个地方获取的。我检查了这个产生的一些条目,它们都是错误的,没有反射(reflect)最新的行动。

我怎样才能让它显示上述查询中的最后(最近)事件?

例子:

user_id | actions | datetime
1 | 10 | 2014-07-04 16:10:14
2 | 55 | 2014-07-05 11:15:08
3 | 8 | 2014-07-04 22:19:43

谢谢

最佳答案

您应该只SELECT 属于GROUP BY 子句的列aggregate function 的结果.你可以而且可能应该 configure your database server 这样它就会提示你的查询。它会说这样的话:

ERROR 1055 (42000): 'datetime' isn't in GROUP BY

其背后的原因是,您没有告诉数据库服务器您想要哪个 datetime 值(最早、平均、最新?)。所以为了得到最后一个值,试试这个查询:

SELECT    user_id, count(id) as actions, max(datetime)
FROM auditing
WHERE datetime>='2014-03-01 00:00:00'
GROUP BY user_id
ORDER BY user_id

关于mysql - 计算操作次数并显示操作的最后日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24634761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com