数据分析-TopN数据采集

CREATE TABLE access_log_url_top (

url STRING,

times INT

);

INSERT OVERWRITE TABLE access_log_url_top

SELECT top.url, top.times

FROM (

SELECT url,COUNT(1) AS times

FROM access_log

WHERE INSTR(url,'.mooc') > 0

GROUP BY url

) top

ORDER BY top.times DESC

LIMIT 10;


这段代码是一个 Hive SQL 查询语句,其作用是从名为`access_log`的表中筛选出包含`.mooc`的 URL,并统计每个 URL 的出现次数,然后按照出现次数降序排列,最后取前 10 条结果存入名为`access_log_url_top`的表中。

具体分析如下:

  1. 子查询部分:
  • `SELECT url,COUNT(1) AS times FROM access_log WHERE INSTR(url,'.mooc') > 0 GROUP BY url`:

  • 从`access_log`表中选择`url`列,并使用`COUNT(1)`统计每个`url`的出现次数,将其命名为`times`。

  • `WHERE INSTR(url,'.mooc') > 0`条件用于筛选出`url`中包含`.mooc`的记录。

  • `GROUP BY url`按照`url`进行分组,以便对每个不同的`url`分别统计出现次数。

  1. 外部查询部分:
  • `SELECT top.url, top.times FROM (子查询) top ORDER BY top.times DESC LIMIT 10`:

  • 从子查询结果中选择`url`和`times`列。

  • `ORDER BY top.times DESC`按照`times`列降序排列结果。

  • `LIMIT 10`限制结果集只返回前 10 条记录。

总的来说,这段代码的目的是找出在`access_log`表中出现次数最多的前 10 个包含`.mooc`的 URL,并将其存入新表`access_log_url_top`中。

相关推荐
随风,奔跑3 分钟前
MySQL性能调优
数据库·mysql·oracle
QH139292318806 分钟前
是德科技KEYSIGHT N5183B 9 kHz~40 GHz微波模拟信号发生器
网络·数据库·科技·嵌入式硬件·集成测试
暗暗别做白日梦9 分钟前
Redisson 延迟队列实现订单支付超时自动取消(源码 + 原理全解)
数据库·redis
数厘11 分钟前
2.13 sql数据更新(UPDATE)
数据库·sql·oracle
一江寒逸15 分钟前
零基础从入门到精通MongoDB(附加篇):面试八股文全集
数据库·mongodb·面试
星晨雪海18 分钟前
Redis 分布式 ID 生成器
数据库·redis·分布式
有味道的男人26 分钟前
抖音关键词搜索,视频详情api
linux·数据库·音视频
丁丁点灯o26 分钟前
Oracle中金额数字转换为大写汉字
数据库·oracle
fly spider27 分钟前
MySQL之Buffer Pool
数据库·mysql
程序员老邢30 分钟前
【技术底稿 13】内网 Milvus 2.3.0 向量数据库全流程部署(商助慧 AI 底座,Attu 可视化)
java·数据库·人工智能·ai·语言模型·milvus