mysql按时间段取和 并找出最大值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql按时间段取和 并找出最大值相关的知识,希望对你有一定的参考价值。
有一张日志表a,记录了里面有两个字段,一个是num,init类型的;一个是logdate,date类型的,记录了一填24小时的日志,现在我想查查看,在哪一个的4分钟时间段内,sum(num)的值是最高的,时间段为4分钟,但查询时要以秒数递增。即03:03:03--03:07:03查一次,03:03:04-03:07:04也要查一次
参考技术A select max(sum) from a where logdate between '03:03:03' and '03:07:03';至于你说的每秒查一次,你想累死mysql吗追问
你这个语句我也知道,我就是不想一秒一秒的递增手工修改,才想要个全自动的,能够一次性就帮我找到最大值的语句。
追答那就把你搜索的时间段拉长就行了,不要一秒一个段
追问必须4分钟一个段,按秒数递增查询,没得办法
? 找出两个数组中的最大值并存储第三个数组。?
【中文标题】? 找出两个数组中的最大值并存储第三个数组。?【英文标题】:Find Greatest Of Two Arrays And Store iN Third Array.? 【发布时间】:2013-10-02 18:32:12 【问题描述】:!! 希望你们身体健康.. 就我而言,我正在尝试编写代码来存储最大的价值。
实际上首先我找到array1和array2之间的Max Number,然后将它存储在array3中.. 是的,这很简单,但结果不正确.. 在浪费了几个小时并使用调试器之后,我仍然无法跟踪问题。
我希望你们能帮助我.. 感谢您的考虑..
int max_hit(int *array1, int *array2, int size)
for(int i = 0; i < size; i++)
if(*(array1+i) > *(array2+i))
return *(array1+i);
else if(*(array2+i) > *(array1+i))
return *(array2+i);
void fill_third(int *array1, int *array2, int *array3, int size)
for(int j = 0; j < size; j++)
*(array3+j) = max_hit(array1, array2, size);
【问题讨论】:
为什么使用C风格而不是普通的数组格式? 先生,我的导师这么说..因为我们正在学习指针..!!顺便说一句,如果我使用普通数组格式,错误仍然存在。因为 Array 实际上是一个指针,它指向数组的第一个元素。 . . 提供一些输入,显示您的程序产生的输出,描述您期望的输出。 对array1和array2进行排序,合并成一个结果。 【参考方案1】:如果我正确理解了这个问题,您想比较两个数组中每个索引的元素,然后选择较大的一个到第三个数组中。在这种情况下,不需要 max_hit 函数,只需对每个索引使用您喜欢的 max 函数即可。 例如:
void fill_third(int *array1, int *array2, int *array3, int size)
for (int i = 0; i < size; ++i)
array3[i] = std::max(array1[i], array2[i]);
当前形式的 max_hit 函数仅选择两个数组元素不相等的第一个索引处的较大元素。在 fill_third 中使用 this 将用这个数字填充 array3 的所有元素。
【讨论】:
想用它实现什么?以上是关于mysql按时间段取和 并找出最大值的主要内容,如果未能解决你的问题,请参考以下文章
使用 Spring Data Mongodb,是不是可以在不拉取和迭代整个集合的情况下获得字段的最大值?