伙计们。我有一张桌子,像:
date_time_stamp | value
________________________
01.01.2001 01:01:00 | test
02.01.2001 01:01:00 | foo
02.01.2001 01:01:00 | test
03.01.2001 01:01:00 | foo
04.01.2001 01:01:10 | test
04.01.2001 01:01:00 | test
05.01.2001 01:01:00 | test我想数一数有多少次测试,但只算最新的结果,
但只是数数
04.01.2001 01:01:10 | test 和
05.01.2001 01:01:00 | test因为它们是最新的结果,没有日期上的模糊。如果有一个副本--你只需要计算最新的一个。有什么办法吗?或者还有另一种解决办法?还想添加这个值是一个集合。
发布于 2017-07-13 20:25:15
下面将给您最新的date_time_stamp,它具有每天的test值。MAX()是一个聚合函数,可以处理日期和时间。
SELECT MAX(date_time_stamp), value from TABLE_NAME
WHERE value = 'test'
GROUP BY date_time_stamp
ORDER BY date_time_stamp输出将是类型..。
MAX(date_time_stamp) | value
_______________________________
01.01.2001 01:01:00 | test
02.01.2001 01:01:00 | test
04.01.2001 01:01:10 | test
05.01.2001 01:01:00 | test如果你只想计算test的数量,并且每天只选择最新的结果,那么下面的内容应该会有帮助.
SELECT COUNT(*)
FROM (SELECT MAX(date_time_stamp) from TABLE_NAME
WHERE value = 'test'
GROUP BY date_time_stamp)输出将是类型..。
COUNT(*)
________
4上面的NOTE:假设列date_time_stamp是DATETIME数据类型,否则您必须使用两个函数(替换,STR_TO_DATE)才能获得日期时间格式。
Sample Data:让orderDates和employeeId来处理它。对于演示,我们将选择employeeId=4谁已经处理了超过一个订单在同一天,这里没有时间,所以将有重复和最大将不受重复的影响,因为它将始终选择最大值,即使有重复。

Output of 1st Query:只有当天的最新订单,由employeeId=4处理

Final Query:employeeId=4处理的订单总数,每天只选择最新订单。

您可以在in上尝试所有查询
https://stackoverflow.com/questions/45089982
复制相似问题