首页新闻找找看学习计划

求最大在园人数及时间点

-1
悬赏园豆:50 [待解决问题]

每分钟都会有数据插入,数据库表中有“净进园人数”的字段(可以是负数,表示此分钟出园多于进园),怎样快速计算出每一天哪一个时间点达到了最大在园人数。用C#代码去实现或者sql都行。

晨梦花开的主页 晨梦花开 | 初学一级 | 园豆:61
提问于:2018-01-01 22:21
< >
分享
所有回答(6)
0

遍历一次.应该是没法再优化了

吴瑞祥 | 园豆:28731 (高人七级) | 2018-01-01 23:22

int 当前人数,最大人数;

foreach(出入记录)

当前人数+=出入人数;

if(当前人数>最大人数)最大人数=当前人数;

输出->最大人数;

支持(0) 反对(0) 吴瑞祥 | 园豆:28731 (高人七级) | 2018-01-02 10:43
1

最高的效率就是自定义聚合函数了

而这个函数的核心就是遍历一遍。。。

刘宏玺 | 园豆:14004 (专家六级) | 2018-01-02 09:02
0

按照下面语句试一试呢,对人数做个降序,取第一条就是最大值

select * from 表名 order by 净进园人数字段 desc limit0,1

冰冻千尺 | 园豆:323 (菜鸟二级) | 2018-01-02 09:09
0

是不是
select 净进园人数字段, 时间字段 from 表名
where 净进园人数字段 = (select max(净进园人数字段) from 表名)
因为这个时间可能有多个

流年飞雨 | 园豆:1923 (小虾三级) | 2018-01-03 17:13
0

“每一天哪一个时间点达到了最大在园人数”,在园人数 是不是就是“净进园人数”?

“哪一个时间点”,表中的记录是不是每分钟就插入一条,也就是以分钟为单位的?

 

按我理解,表里面都有 净进园人数 和 时间点(以分钟记),要得到净进园人数最大的时间点,不需要什么额外计算,直接查表就行了。

order by  max 

西漠以西 | 园豆:1670 (小虾三级) | 2018-01-04 09:54
0

遍历之后获取剩余人数吧

楼上的楼主要的是最大人数啊 不是进园最大人数啊

KBLW | 园豆:210 (菜鸟二级) | 2018-01-26 18:45

前提园子不是24小时开放

foreach 当天所有

  计算取出

支持(0) 反对(0) KBLW | 园豆:210 (菜鸟二级) | 2018-01-26 18:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册