当前位置: 首页 > news >正文

获取每个访客的第一条访问日志(获取网站的UV)

-- 获取每个访客的第一条访问日志,初始化每个访客的第一个访问日志,计算UV
CREATE TABLE access_log_first (
  id BIGINT,
  ip STRING,
  province STRING,
  city STRING,
  isp STRING,
  access_time STRING,
  access_hour STRING,
  url STRING,
  status STRING,
  traffic STRING,
  referer STRING,
  ref_type STRING,
  c_info STRING,
  client_type STRING,
  client_browser STRING
);


INSERT OVERWRITE TABLE access_log_first
SELECT a.id, a.ip, a.province, a.city, a.isp
  , a.access_time, a.access_hour,a.url, a.status, a.traffic
  , a.referer,a.ref_type, a.c_info, a.client_type, a.client_browser
FROM access_log a
JOIN (
  SELECT c.ip,MIN(c.id) AS id
  FROM access_log c
  GROUP BY c.ip,c.c_info
) b
ON a.ip = b.ip
  AND a.id = b.id;

这段 SQL 语句的作用是将满足特定条件的数据插入到名为access_log_first的表中。
具体解释如下:
一、整体结构
sql
INSERT OVERWRITE TABLE access_log_first SELECT... FROM access_log a JOIN... ON...;
这是一个标准的INSERT OVERWRITE语句结构,用于覆盖目标表中的数据。首先指定目标表为access_log_first,然后通过SELECT子句选择要插入的数据来源,这里的数据来源是从access_log表中选取,并通过连接操作筛选出特定的数据行。
二、选择插入的数据列
sql
SELECT a.id, a.ip, a.province, a.city, a.isp, a.access_time, a.access_hour,a.url, a.status, a.traffic, a.referer,a.ref_type, a.c_info, a.client_type, a.client_browser FROM access_log a
从access_log表(别名a)中选择了多个列,包括id、ip、province、city、isp等一系列与访问日志相关的字段。
三、连接子查询筛选数据
子查询部分:
sql
   SELECT c.ip,MIN(c.id) AS id FROM access_log c GROUP BY c.ip,c.c_info
这个子查询从access_log表(别名c)中按照ip和c_info分组,然后为每个分组找到最小的id值。
连接条件:
sql
   JOIN (... ) b ON a.ip = b.ip AND a.id = b.id
主查询中的access_log表(别名a)与子查询的结果集(别名b)进行连接,连接条件是a.ip = b.ip和a.id = b.id,即根据ip和id进行匹配,确保插入到目标表中的数据是每个ip下最小id对应的那一行数据。
综上所述,这段 SQL 语句的目的是从access_log表中筛选出每个ip下特定的数据行,并将这些数据插入到access_log_first表中,实现了对数据的筛选和整理。


http://www.mrgr.cn/news/58418.html

相关文章:

  • 深度学习系列——RNN/LSTM/GRU,seq2seq/attention机制
  • 内容安全与系统构建加速,助力解决生成式AI时代的双重挑战
  • Vue3结合vue-plugin-hiprint实现自定义打印模板设计与布局
  • MMA: Multi-Modal Adapter for Vision-Language Models
  • UML外卖系统报告(包含具体需求分析)
  • gitee建立/取消关联仓库
  • 「 自动化测试 」面试题..
  • 请简述同步和异步的区别。
  • 【嵌入式】全面解析温度传感器:PT1000、热电偶、热敏电阻与红外传感器的原理与应用
  • 【密码学】隐语HEU同态加密算法解读
  • 5G NR NARFCN计算SSB中心频率MATLAB实现
  • 『 Linux 』网络传输层 - UDP
  • Python自动化测试+邮件推送+企业微信推送+Jenkins
  • css绘制s型(grid)
  • DDD重构-实体与限界上下文重构
  • 使用mock进行接口测试教程
  • 数据库之旅:从MySQL起航,领略数据的海洋
  • 基于KV260的基础视频链路通路(MIPI+Demosaic+VDMA)
  • C语言的书写
  • java编译[WARNING]告警处理
  • 内存中划分的四个主要区域
  • 为什么使用 toFixed 方法的结果不一致呢?
  • 什么品牌的台灯护眼比较好?五款性能与品质兼并的护眼台灯分享
  • 2024年双十一有什么好物推荐?盘点2024双十一爆款好物分享
  • Nature 正刊丨阻断翻译的mRNA ADP核糖基转移酶的抗病毒防御
  • 中小企业设备管理数字化转型:Spring Boot实现