Navicat Premium是一个可连接多种数据库的管理工具,它可以让你以单一程序同时连接到MySQL、Oracle及PostgreSQL数据库,让管理不同类型的数据库更加的方便。
前N个查询是按降序获取按值排序的前几条记录的查询。 通常,这些是使用TOP或LIMIT子句完成的。 问题是,前N个结果集被限制为表中的最高值,而没有任何分组。 GROUP BY子句可以帮助您解决此问题,但仅限于每个组的单项最高结果。 如果您想要每个类别的前5名,GROUP BY本身将无济于事。 这并不意味着它无法完成。 实际上,在今天的博客中,我们将确切学习如何按组构造前N个查询。
前N个查询基础知识
为了更好地理解“前N个查询”,让我们编写一个,从Sakila示例数据库中选择运行时间最长的前5部电影。 如果您不熟悉Sakila数据库,它是一个MySQL数据库,其中包含许多与虚构的视频租赁商店有关的表,视图和查询。 表包括actor、film、customer、rentals等。
按类别分组结果
GROUP BY子句将聚合函数应用于一个或多个字段,以便数据与您指定的分组相关。 就分组结果而言,这是向前迈出的一步