首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

hive sql(二)—— 统计每个用户每个月访问量和累计月访问量

每天分享一个sql,帮助大家找到sql的快乐 需求 统计每个用户每个月访问量和累计月访问量 建表语句 CREATE TABLE visit( userId string, visitDate...u01', '2017/1/21', 5 ), ( 'u02', '2017/1/23', 6 ), ( 'u03', '2017/1/22', 8 ), ( 'u04', '2017/1/20', 3...3 Time taken: 31.629 seconds, Fetched: 5 row(s) 分析 1、从需求来看,需要计算每个月的访问结果和截至当月累计和,并一起展示,必然用到开窗,这个在hive...sql系列一讲过了 2、累计效果需要用到rows范围 3、这里日期格式不能直接用,需要用replace函数,这个函数作用最易于想到 4、这里实现步骤,先对日期转格式,在开窗直接计算 扩展 select...and current row) 知识点 rows是行数的意思,后面跟的是函数的范围 between是行数在什么范围 unbounded是行数的起点,这里可以将unbounded替换成1,那就是相邻上一个月的意思

3.6K30

hive sql(网友1)—— 用户记录去重,两次记录间隔超过90天算新的记录总数及平均年龄

需求 用户记录去重,两次记录间隔超过90天算新的记录——此案例已征求网友同意 建表语句 create table wangyou( uid string, time string );...diff_day>180 and t1.diff_day <=270 then 2 when t1.diff_day>270 and t1.diff_day 3...row(s) 分析 #网友提供的计算逻辑 1.每个用户有多条记录,将每个用户最早的一个日期作为参数A,每条记录都与最小值相减,得到间隔天数; 2.如果间隔天数90,则将参数A更新为第一条大于90天的记录所在的天数; 如此循环,最终返回最早一条记录,以及间隔天数大于90的记录。...扩展 1、本次默认数据的范围是360天内,如果是数据间隔时间比较长怎么处理;一是通常认为间隔时间特别久的数据不会再分析,因为离线每次按批处理,如此,历史数据都处理过的,只需要一段时间处理一次;二是如果对历史数据处理

1.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    王录华:关键客户访问应用时如何做到Average Page Load Time超过3分钟就触发警报(第5篇)

    首先,问几个用户体验问题: (1)如何你的云计算数据中心有超过两万个各式各样的企业应用,您如何找出用户体验最差的应用及页面链接?这个最差体验是由于服务器响应延迟时间导致的,还是网络延迟时间导致的?...(2)如果你有几十万的用户同时访问一个应用,其中有十个关键用户特别重要。怎么做到这些关键用户Average Page Load Time超过3分钟就触发警报? 如果你已有答案,那么这个短文不适合你。...图一:响应时间测量方式 (1)Server transit delay (STD) = T4 - T2 (2)Client transit delay (CTD) = T6 - T4 (3)RTT (Round-Trip...每个Session所有访问的内容和相关的时间指标都是可以追溯的。...通过这种方式,我们可以为2.5万个SaaS客户找出其员工体验需要改进的应用及页面链接,并且可以在关键用户Average Page Load Time超过一定阀值时就立即通知我们的相关部门。

    51920

    如何配置 SLO

    SLO 是用 SLI 来描述的,一般描述为: 比如以下SLO: •每分钟平均 qps > 100 k/s •99% 访问延迟 < 500ms •99% 每分钟带宽 > 200MB/s 设置 SLO 时的目标依赖于系统的不同状态...例如: •fast:0 - 3s 内完成服务调用() •normal:3 - 5s 内完成服务调用 •slow:5s 以上完成服务调用或超时 ℹ️ 提示: 当然,上边的 3s 也不应该是拍脑袋想的,而应该是例如基于过去一个月系统正常运行时...,DB 的失败 SQL 执行次数除以总 SQL 执行次数。...读错误率:是在给定的一小时间隔内,DB 的失败查询 SQL 执行次数除以总 SQL 执行次数。...•延迟时间和:是指在应用程序提交的 SQL 成功请求导致 P99 延迟大于或等于 10ms 的一个小时间隔的总数。

    1.2K11

    另辟蹊径第二弹,时间规律里的秘密

    ,经常出席各类技术分享活动;从开发到性能管理,有着超过10年的企业级系统设计和优化经验;曾服务于甲骨文公司,组织和主讲过多次《甲骨文技术开发人员日》和《Oracle圆桌会议》,在任职甲骨文公司之前,还曾经服务于大型制造企业中芯国际...独辟蹊径:挖掘时间规律 这时候,现场工程师说了一句,几个月前(7/22),发生过一次类似的故障,也是同样的SQL,时间也差不多就是 半夜1:40-1:50之间。...最多的是 01:44(或者45),有5条记录 13:44, 有3条记录 另外分别有1条 09:28和 01:49。...最近一次,12/25 01:44 往前一次,12/18 13:44 间隔 6.5天 再往前一次,12/05 13:44, 和上一次间隔 13天 再往前一次,11/16 01:44, 和上一次间隔 19.5...暂停一下,13天岂不是就是2个6.5天,19.5天岂不是就是 3个6.5天, 写个SQL验证一下 select sql_plan_baseline,first_load_time, last_load_time

    45120

    Oracle AWR特性描述

    AWR统计信息收集处理的内容   用于确定数据库段的访问和使用的对象统计信息   基于活动时间模型的统计,位于v$sys_time_model和v$sess_time_model视图   系统和会话级别统计信息收集...,位于v$sesstat和v$systat视图   基于耗用时间和CPU时间等高负载的sql语句   ASH统计信息,代表了最近的活动会话的历史 3....例如,你可能想要捕获AWR数据为一个月每星期一上午。在这种情况下,您可以创建一个重复基线模板,以便在每个星期一的重复日程中自动创建基线,并在指定的到期时间间隔(如1个月)后自动删除旧的基线。...百分位能指定为以下几种:高(0.95),100个中只有5个能超过这个值;非常高(0.99):100个中只有1个能超过这个值;严重的(0.999):1000个钟只有1个能超过这个值;极端的(0.9999)...当如果你的系统的高峰期在每个月的月末,那么你可能需要将这个保留时间更改到1个月。   例外情况下,你可以将快照时间间隔改成0来关闭自动收集快照。

    74010

    教育行业案例:如何分析​复购用户?

    例如今天购买了课程,7天后又购买了课程的用户,也就是每次购买的月时间间隔个月 。 一个表如果涉及到时间间隔,就需要用到自联结,也就是将两个相同的表进行联结。...用户第一次购买时间)个月的数据呢?...用case语句选出时间间隔个月的数据,并计数就是此月复购用户数 count(distinct case when 时间间隔<=1 then 用户id else...第二十月复购用户数 和此月复购用户数分析思路一样,只需要更改时间间隔=N个月即可。...3.遇到只有一个表,但是需要计数时间间隔的问题,就要想到用自联结来求时间间隔。 4.遇到复购问题,可以拿出本题的答案作为万能模板来应用。

    1.1K10

    SQL数据分析淘宝用户分析实操

    SQL不仅可以从数据库中读取数据,还能通过不同的SQL函数语句直接返回所需要的结果,从而大大提高了自己在客户端应用程序中计算的效率。 但是,这个过程需要很熟练掌握SQL!...整体用户的购物情况 pv(总访问量)、日均访问量、uv(用户总数)、有购买行为的用户数量、用户的购物情况、复购率分别是多少? 2. 用户行为转化漏斗 点击— 加购物车— 收藏— 购买各环节转化率如何?...总体用户购物情况 pv(总访问量) ? 日均访问量 ? uv(用户总数) ? 有购买行为的用户数量 ? 用户的购物情况 ? 复购率:产生两次或两次以上购买的用户占购买用户的比例 ? 2....,再对间隔时间进行排名,间隔天数越少,客户价值越大,排名越靠前。...(4)kettle制作报表自动化 为了实现监测每个月用户的评分变化,推测客户消费的异动状况,结合数据库使用ETL工具kettle实现定时输出评分结果: ? 这里kettle实现过程不做详细描述。

    2.3K20

    Sql年月日计算方法

    这是计算一个月第一天的SQL  脚本:         SELECT  DATEADD(mm,  DATEDIFF(mm,0,getdate()),  0)         我们把这个语句分开来看看它是如何工作的...它通过从一个月的最后一天这个例子上减去3毫秒来获得。有一点要记住,在Sql  Server中时间是精确到3毫秒。这就是为什么我需要减去3毫秒来获得我要的日期和时间。        ...SELECT  dateadd(ms,-3,DATEADD(mm,  DATEDIFF(mm,0,getdate()),  0))         计算出来的日期的时间部分包含了一个Sql  Server...修改需要给用DATEDIFF比较当前日期和“1900-01-01”返回的时间间隔上加1。通过加1个月,我计算出下个月的第一天,然后减去3毫秒,这样就计算出了这个月的最后一天。...这是计算本月最后一天的SQL脚本。

    1.7K20

    SQL Server各种日期计算方法

    这是计算一个月第一天的SQL 脚本:   SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)   我们把这个语句分开来看看它是如何工作的。...它通过从一个月的最后一天这个例子上减去3毫秒来获得。有一点要记住,在Sql Server中时间是精确到3毫秒。这就是为什么我需要减去3毫秒来获得我要的日期和时间。  ...SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))   计算出来的日期的时间部分包含了一个Sql Server可以记录的一天的最后时刻...修改需要给用DATEDIFF比较当前日期和“1900-01-01”返回的时间间隔上加1。通过加1个月,我计算出下个月的第一天,然后减去3毫秒,这样就计算出了这个月的最后一天。...这是计算本月最后一天的SQL脚本。

    2.5K20

    优化的大招,你也能轻松掌握

    今年正式干工还不到2个月,老虎刘已经给3家移动公司和两家银行做了优化,动作快的客户已经把优化建议基本实施完了。...实际上每天没有那么多的记录需要处理,这个sql大部分时间是一个空耗cpu的存在,而且业务处理也没有那么紧迫,两次执行时间间隔个1到2秒也是可以完全满足业务需求的。...我们假定每次循环只增加sleep 1秒的间隔,那么每天最多执行86400次,5个并发就是43万次,比原来4000万次有将近100倍 的降低,再加上执行效率33.5倍的提升,这个sql就会从原来遥遥领先的...对于case2,是存储过程的一个游标,sql业务逻辑非常复杂,每次执行消耗资源较多,从sql角度很难优化,老虎刘给开出的处方是降低该游标sql的执行频率:降低并发数,增加sql执行间隔时间;或者先需要处理的记录先存入临时表...,游标访问临时表。

    28010

    SQL函数 TIMESTAMPDIFF

    SQL函数 TIMESTAMPDIFF一个标量日期/时间函数,它返回指定日期部分的两个时间戳之间差异的整数计数。...间隔类型参数可以是以下时间戳间隔之一:SQL_TSI_FRAC_SECONDSQL_TSI_SECONDSQL_TSI_MINUTESQL_TSI_HOURSQL_TSI_DAYSQL_TSI_WEEKSQL_TSI_MONTHSQL_TSI_YEAR...TIMESTAMPDIFF 和 DATEDIFF 不处理季度quarters (3 个月间隔)。请注意,TIMESTAMPDIFF 只能用作 ODBC 标量函数(使用大括号语法)。...一个月中的天数必须与月和年相匹配。例如,日期“02–29”仅在指定年份是闰年时有效。无效的日期值会导致 SQLCODE -8 错误。小于 10(月和日)的日期值可能包括或省略前导零。...示例以下示例返回 7,因为第二个时间戳 (2017-12-20 12:00:00) 比第一个大 7 个月:SELECT {fn TIMESTAMPDIFF(SQL_TSI_MONTH, '2017

    1.9K40

    这可能是最适合探索式数据分析的工具

    例如,以下这些计算在 Excel 中就很难完成:• 找出每 7 天内至少 3 次点击相同类别产品的用户,以分析用户偏好;• 计算用户在网站上每次操作间隔超过 15 分钟后的再次访问时间,用于分析用户活跃度...;• 确定某商品在一个月内库存量低于安全库存线超过 3 次的具体日期,以优化库存管理。...从这个意义讲,SQL 和 Python 的计算能力也并不是很便捷,有时还不如 Excel 顺手。...比如上面计算股票连涨天数的例子,用 SQL 和 Python 都没 Excel 简单,但用 SPL 来做就只需要三行,非常简洁:A1StockRecords.xlsx2=T(A1).sort(DT)3=...比如在下面的数据中找出每个月都能进 top10 的明星产品。

    10410

    一个导数需求的演进过程

    最近有个导数的需求,下图所示,将数据库A中表A三个月大约3000万数据,导入数据库B的表B,要求尽可能快地完成。这3000万数据,是相对静态的,三个月的数据,当前不会对其作增删改查操作。...3.通过程序,可以是PL/SQL,或者Java,读取数据库A,插入数据库B。 应用开发人员,选择的方案3,但是在实现的过程中,还是有些曲折。 1....,这个间隔时间,就会非常长了,这是为什么?...此处提示溢出,还是因为他会缓存一次读取数据库A的数据集太大了,超过了JVM设置的内存大小。 解决方案1, 调小批量提交的数量。...3.对开发来说,一些SQL的基本性能问题,或者易错点,应该有意识积累,例如索引字段不能使用函数,但是从另个角度,术业有专攻,我们能通过一些技巧,帮助他们发现这些问题,这个最近有所实践了,找个机会,可以和各位分享

    60310

    Spark History Server自动删除日志文件

    背景 公司的计算平台上,写入spark-history目录日志文件数超过设定阈值(1048576),导致任务失败。...exceed之类的错误, 通过export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Xmx6000m"加大hadoop客户端堆内存,遍历出文件数,发现这些文件是最近一个月产生的...spark.history.fs.cleaner.interval默认值为1d 这个参数指定history-server的日志检查间隔,默认每一天会检查一下日志文件 spark.history.fs.cleaner.maxAge...这个参数务可以成压缩哦,不然日志文件岁时间积累会过大 spark.history.retainedApplications  默认值:50 在内存中保存Application历史记录的个数,如果超过这个值...,旧的应用程序信息将被删除,当再次访问已被删除的应用信息时需要重新构建页面。

    2.8K10
    领券