统计数据库中某一天的最高记录

来源:互联网 发布:淘宝皮草外套新款 编辑:程序博客网 时间:2024/06/12 00:31

根据题目可以看出,整理思路,有以下几点:

  • 数据库中,根据报道时间,统计出每天的新闻条数
  • 如何找到数目最大的一条
  • 如果结果中,存在多条个数相同的新闻如何处理?

    下面给出数据库表中的结构,只看报道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);

得到一下结果

至此,完成了以上问题

阅读全文
0 0
原创粉丝点击