统计数据库中某一天的最高记录
程序员文章站
2024-03-25 21:31:34
...
根据题目可以看出,整理思路,有以下几点:
- 数据库中,根据报道时间,统计出每天的新闻条数
- 如何找到数目最大的一条
-
如果结果中,存在多条个数相同的新闻如何处理?
下面给出数据库表中的结构,只看报道Time那一列,根据Time,查找新闻中一天发表最多的新闻个数:
根据上述,内容,首先我们统计出以Time为对象,计算每天的发表个数:
select Time, COUNT(Time) from emergency GROUP BY Time;
输出结果:
我们看到,已经统计出来了发表新闻的个数,
这里我们来分析一下关键词GROUP BY的作用
它是根据一个或多个列对结果集进行分组。这下就明白了结果,
然后我们可以在进行一个小小的操作,对刚刚的结果进行排序,看看最大的值是多少,如果你只想数据最大值的一条数据,那么可以直接使用关键词LIMIT 条数达到目的
select Time, COUNT(Time) from emergency GROUP BY Time ORDER BY COUNT(Time) DESC LIMIT 1;
结果如下:
输出时间,以及结果的条数。
但是当你想把所有的最大结果都输出,这时候要怎么办尼,此时方法很简单,就和我们正常思维一样,找到最大值,即使用MAX,方法,这个关键词记得要大写,当个数等于最大值时,就进行结果的输出,有多少条输出多少条。
因此就有了如下的语句
SELECT * FROM (SELECT Time, COUNT(*) as num FROM emergency GROUP BY Time) as a WHERE a.num = (SELECT MAX(b.num) FROM (SELECT Time, COUNT(*) as num FROM emergency GROUP BY Time) as b);
得到一下结果
至此,完成了以上问题
下一篇: 二项分布VS泊松分布