如何从数据库中选出最热的十个检索词
来源:互联网 发布:淘宝网地板棉拖鞋 编辑:程序博客网 时间:2024/05/18 03:55
这个是我今天面试碰到的一个面试题,不得不说面试官真的是别有用心,可惜当时我是把数据库忘的一干二净,回答的离他想要的想去甚远。
还是回到问题上吧:如何在数据库中查处最热的十个词,给你一张检索记录表,里面有一‘query’列,其它的暂时记不起来了,但是这个问题就只需要关注这一列就好:
这里我随意创建了一张数据表(仅做模拟),表结构如图所示:
然后我在里面随便插入了几组数据,统计结果如下图所示:
那么上面问检索最热的几个词其实这里面就类似于查询foot_id中相同数字出现的次数按照大小排序最重按照降序排列,取出前十个前十个词。
解决步骤:
- 首先需要对`query`列进行group by操作,将相同检索词放到一组:
select *, count(*) from shoes group by foot_id;
- 然后需要对count(*)列进行排序,此时如果直接在count(*)后加desc是错误的:
select *, count(*) desc from shoes group by foot_id;
- 对count(*)进行排序需要使用order by命令:
select *, count(*) from shoes group by foot_id order by count(*);
- 如果到了上面那一步还差一点点,但是这会儿也差不多可以了,因为就差一个desc了,但是别忘了还有一个前十位呢,这里就前三位吧:
select *, count(*) from shoes group by foot_id order by count(*) desc limit 3;
嗯,是的,这个应该就是问题的解了!
0 0
- 如何从数据库中选出最热的十个检索词
- sql从数据库中选出千万级的表
- 随机从数据库中选取记录
- 在postgresql中如何从数据库中检索出所有的表名
- 如何从MySQL数据库表中检索数据
- 如何从 MySQL 数据库表中检索数据
- GridView在打开时从数据库中选出radiobuttonlist的值
- 如何从N个数中选出最大(小)的n个数?我的想法
- 如何从最大的N个数中选出最大或者最小的n个数
- 如何从最大的N个数中选出最大或者最小的n个数
- PL\SQL如何将从一张表中选出的数据插入到另一张表中
- 从n中选k的组合数
- 如何从数组里检索?
- 如何从硬盘驱动器检索已删除的历史记录
- 如何从jar包中检索特定规则的代码
- Sql语言:如何从多条记录中选取一条?
- 一道经典的面试题:如何从N个数中选出最大(小)的n个数?
- 一道经典的面试题:如何从N个数中选出最大(小)的n个数?
- JAVASE -JAVA基础面试题
- ViewFlipper左右滑动事件
- opencv 帧差法找出相差大的图像(包含访问mat的像素值)
- linux 批量杀掉程序 ps命令 grep命令 kill命令
- 印度国有企业抵制压力帮助银行坏账
- 如何从数据库中选出最热的十个检索词
- oracle 12c on oracle Linux-rac安装配置手册
- Java BigDecimal 一些注意点
- 拓扑排序
- ACM篇:POJ 1786--Bridge Hands
- activemq 控制面板里的 Number Of Pending Messages、 Messages Enqueued、Messages Dequeued含
- go 打印当前时间
- shareSDK
- 2.非模态对话框的创建