摘要:
OVER的定义 OVER用于为行定义一个窗口,它对一组值进行操作,不需要使用GROUP BY子句对数据进行分组,能够在同一行中同时返回基础行的列和聚合列。 OVER的语法 OVER ( [ PARTITION BY column ] [ ORDER BY culumn ] ) PARTITION B 阅读全文
摘要:
下表记录了夺冠球队的名称及年份: 请写出一条 SQL 语句,查询出在此期间连续获得冠军的有哪些,其连续的年份的起止时间是多少? 查询结果: 之前我们有讲解如何求解连续多少天的问题,这个题有点类似,但是也有点不一样的地方。问题分析一般连续性的问题,我们都需要使用笛卡尔积进行错位匹配,就是类似a.ID= 阅读全文
摘要:
1. count(1) and count(*) 从执行计划来看,count(1)和count(*)的效果是一样的。 当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多! 当数据量在1W以内时,count(1)会比count(*)的用时少些,不过也差不了多少。 阅读全文
摘要:
在 MySQL 中通常是使用 distinct 或 group by子句,但在支持窗口函数的 sql(如Hive SQL、Oracle等等) 中还可以使用 row_number 窗口函数进行去重。 举个栗子,现有这样一张表 task: 备注: task_id: 任务id; order_id: 订单i 阅读全文
摘要:
有如下表ADD_NUM 我们希望实现如下结果: 开窗函数 学过开窗函数的小伙伴肯定首先想到的就是它了,不错,开窗函数可以很快速的求解出来,具体写法如下: SELECT OrderDate,SUM(Amount) OVER(ORDER BY OrderDate) Amount FROM Add_Num 阅读全文
摘要:
问题描述 时间重叠指上下两行数据的时间段有重叠部分,现在要找出这些在时间上有重叠的记录。 具体问题 有7个会议室,每个会议室每天都有人开会,某一天的开会时间如下: 查询出开会时间有重叠的是哪几个会议室?上面预期结果是 ID 2 3 4 5 6 问题分析 为了方便分析,我们画了如下一个草图来具体描述。 阅读全文
摘要:
顺序大概是这样的。SELECT 并不是最先执行的,而是在第五个。 这张图回答了以下这些问题 这张图与 SQL 查询的语义有关,让你知道一个查询会返回什么,并回答了以下这些问题: 可以在 GROUP BY 之后使用 WHERE 吗?(不行,WHERE 是在 GROUP BY 之前!) 可以对窗口函数返 阅读全文
摘要:
1、AARRR模型 AARRR模型又叫海盗模型,这个模型把实现用户增长拆分成了 5 个指标:获客、激活、留存、收益、传播。分别对应“用户如何找到我们?”、“用户的首次体验如何?”、“用户会回来吗?”、“如何赚到更多的钱?”、“用户会转介绍,告诉其他人吗?”这五个问题。大家在做用户增长的时候可以通过指 阅读全文