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

短视频平台常见SQL面试题,你学会了吗?

用户视频信息明细表包含用户id,发布视频id,视频点赞数,视频发布日期,视频类别用户的粉丝数。 主播开播明细表包含主播id,主播开直播房间的id号,开播的时间。...用户id分组(partiotion by 用户id)、并按最点赞数、视频id降序排列(order by点赞数,视频id ),降序排列desc用套入窗口函数的语法,得出下面的SQL语句: select...我们将发布时间限定在6月1号-2号之间,使用if函数sum函数来计算涨粉数,如果发布日期是6月2号,显示字段”用户累计粉丝数”,如果不是就显示”(负)-用户累计粉丝数”,最后求和得出涨粉数。...观察主播开播明细表直播间用户信息明细表,我们可以得知每位主播的开播时间观众什么时间进入哪个直播间。用直播间id将两表联结来得出直播间进入的用户信息。...业务需求我们找出主播开播后三分钟内无观众进入的直播id,用date_add函数来计算开播时间观众的进入时间来算时间差。

68330

mysql基本命令

<= 6; 小于等于 id in(1,3,4,5,6) 包含 id not in (1,2,3,4,5,6) 不包含 and 与/ or 或 not 非 -- 3.查询指定在指定区间内的值:(所有该...'a'默认为函数名,在此处也就是count(*),可以进行修改↑; -- ===sum,求和,对指定的[数据值]求和 sum(列名),就是看该中所有值相加的. select sum(列名) from...表名; -- 注意:的类型:汉字不能求和;若有汉字,0计算,对不是数据类型的数据,计0运算. -- 可以与条件查询结合↓ (查询2中所有包含'张三'的字段,并求出其中所有1的值的). select...2 like '%张三%' group by 2 order by sum(1) desc; -- 按照2中的'张三'内容对1进行求和并按降序显示; -- +可以用as临时命名一个函数[sum...2中的'张三'内容对1进行求和并按降序显示且只显示 sum(1) 的值大于18的内容; -- $分组查询:(关键词:limit x,y) -- x:表示从第几行开始显示(不包括x行,x为0时,可省略不写

1.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

pandas实战:用户消费行为画像

通过分组内偏移、排序、累计求和等方法实现。分组内的各种骚操作可以了解东哥的pandas进阶宝典。...',aggfunc='count',fill_value=0) pp2.plot.area(figsize=(12,6)) 8.高质量客户分析 客户ID分组对订单金额求和,然后计算每个客户的订单总和占累计求和的比例...9.计算用户生命周期 求出每个客户的最早最晚的消费日期作差得到最早最晚的时间间隔时长,即为客户的生命周期。...("user_id").order_date.min() #客户分组求最早的消费日期 order_date_max = user_purchase.groupby("user_id").order_date.max...() #客户分组求最近的消费日期 (order_date_max-order_date_min).dt.days.hist(bins=40,figsize=(10,6)) 大部分客户只消费了一次,

17910

2-SQL语言中的函数

# 日期函数 # NOW() 返回当前系统日期+时间 SELECT NOW(); # CURDATE() 返回当前系统日期,不包含时间 SELECT CURDATE(); # CURTIME()...返回当前系统时间,不返回日期 SELECT CURTIME(); # 获取指定部分的日,月,年等信息(小时,分钟,秒) SELECT YEAR(NOW()); SELECT MONTH('1998-...H时%i分钟%s秒') AS 当前日期; 格式符 功能 %Y 四位的年份 %y 两位的年份 %m 月份(01,02,03…,12) %c 月份(1,2,3…12) %d 日(01,02,03…) %H...可以distinct搭配使用 # 分组函数 /* 分类:sum 求和,avg 平均值,max 最大值,min 最小值 特点: 1. sum,avg可以处理数值型数据,max,min,count可以处理任何类型数据...语法: SELECT 分组函数,(要求出现在group_by后面) FROM 表 【WHERE 筛选条件】 GROUP BY 分组列表 【ORDER BY 子句】 注意: 查询列表比较特殊,要求是分组函数

2.8K10

PySpark︱DataFrame操作指南:增删改查合并统计与数据处理

--- **获取Row元素的所有列名:** **选择一或多:select** **重载的select方法:** **还可以用where条件选择** --- 1.3 排序 --- --- 1.4...选择a、b、c三 重载的select方法: jdbcDF.select(jdbcDF( "id" ), jdbcDF( "id") + 1 ).show( false) 会同时显示id + id...+ 1 还可以用where条件选择 jdbcDF .where("id = 1 or c1 = 'b'" ).show() — 1.3 排序 — orderBysort:指定字段排序,默认为升序...**其中,monotonically_increasing_id()生成的ID保证是单调递增唯一的,但不是连续的。...count() —— 计算每组中一共有多少行,返回DataFrame有2,一分组的组名,另一为行总数 max(*cols) —— 计算每组中一或多的最大值

29.8K10

Pandas三百题

- join|索引(多个) 重新产生数据并按下图所示进行连接(根据 key1 key2) left.join(right,on=['key1','key2']) 8-金融数据与时间处理 8...2-时间生成|指定范围 使用pandas天生成2021年1月1日至2021年9月1日的全部日期 pd.date_range('1/1/2021','9/11/2021') DatetimeIndex...df1.info() 12 - 时间类型转换 将 df1 df2 的 日期 转换为 pandas 支持的时间格式 df1['日期'] = pd.to_datetime(df1['日期']) df2...'日期').resample('M').last() 27 - 日期重采样|分钟 -> 日 日对 df2 进行重采样,保留每天最后一个数据 df2.set_index('时间').resample('...D').last() 28 - 日期重采样|低频 -> 高频 将 df2 的 5分钟 数据改为 3分钟,缺失数据向前填充 df_3min = df2.set_index('时间').resample('

4.6K22

MySQL基础

方法 描述 now() 获取当前日趋–时间 curtime() 只有时间 curdate() 只有日期 date_format(date,格式) 格式日期为字符 str_to_date(str,格式)...%s秒') 出生日期 SELECT DATE_FORMAT(hiredate,'%Y年%M月%d日 %H小时%i分钟%s秒')入职日期 STR_TO_DATE 指定格式解析字符串为日期类型 SELECT...,并按最低工资降序 (工种部门都一样,才是一组) SELECT MIN(salary) 最低工资,job_id,department_id FROM employees GROUP BY job_id...`department_id`>100; 添加分组+筛选+排序: 查询部门中员工个数>10 的部门名,并按员工个数降序 SELECT department_name,COUNT(*) 员工个数 FROM...year 年 date 日期 time 时间 datetime 日期时间 8 timestamp 日期+时间 4 比较容易受时区、语法模式、版本的影响,更能反映当前时区的真实时间 常见的约束 一、常见的约束

2.4K30

图解面试题:累计求和问题如何分析?

包含雇员编号,薪水、起始日期、结束日期。 其中,薪水是指该雇员在起始日期到结束日期这段时间内的薪水。当前员工是指结束日期 = '9999-01-01'的员工。...如计算左边雇员编号10002的累计薪水则需用到右边雇员编号(1)中1000110002两人的当前薪水,且需要满足右边雇员编号(1)<=左边雇员编号 根据左边的雇员编号薪水分组,再对右边的薪水(1)...薪水表中只有一雇员编号薪水,因此我们需要复制一张薪水表并与原来的合并,需要用到自联结,语法如下: select 列名 from 表名 as 别名1,表名 as 别名2; select *from...显然观察上述图表,需满足雇员编号(1)<=雇员编号,而题意当前员工的薪水需要满足结束日期 = '9999-01-01',并按雇员编号升序排列: select s1.雇员编号,s1.薪水,s2.雇员编号...avg(列名) over (order by ) 所以,我们可以得出“累计求和”问题的万能模板是: select 1,2,sum(列名) over (partition by <用于分组的列名

1.1K20

ActiveReports 报表应用教程 (7)---交叉报表及数据透视图实现方案

在矩阵控件中组的行数数由每个行分组分组中的唯一值的个数确定。同时,您可以行组组中的多个字段或表达式对数据进行分组。...在运行时,当组合报表数据和数据区域时,随着为组添加为行组添加行,矩阵将在页面上水平和垂直增长。...我们这里将要演示的是产品销售数据分析表,分组按照产品类别产品名称进行分组;行分组按照年月进行分组,并对销量大于2000的数据进行高亮显示,以下是详细实现步骤: 1、创建报表文件 在应用程序中创建一个名为...) AS 订购年, DATEPART("m",订单.订购日期) AS 订购月,类别.类别ID,产品.产品名称,订单明细.数量, 订单明细.单价, 订单明细.折扣 FROM (( 订单 INNERJOIN...[订购月] 表达式:=[订购月] 分组-常规-添加分组: 名称:Matrix1_类别名称 分组:=[类别名称] 表达式:=[类别名称

1.7K50

MySQL之数据库基本查询语句

SELECT 基本查询语句 查询单个 #查询Author表name的值 select name from Author; 查询多个 #查询Author表id,name两的值 select id,...group by au_id; 分组排序复合查询(having) #根据aid统计文章总数大于5的 select au_id,count(*) as '数目' from Article group by...au_id having count(*)>5; with rollup实现在分组统计数据基础上再进行统计 #将Articleauthor进行分组,再统计每个人的总文章数 select author...#获取系统当前日期时间 年-月-日 时:分:秒 select sysdate(); #获取系统当前日期 年-月-日 select curdate(); #获取系统当前时间 时:分:秒 select...curtime(); #获取给定日期的年份——获取当前系统时间的年份 select year(CURDATE()); #获取给定日期的月份——获取当前系统时间的月份 select month(CURDATE

4.8K40

独家 | 一文读懂PySpark数据框(附实例)

作者:Kislay Keshari 翻译:季洋 校对:倪骁然 本文约1900字,建议阅读8分钟。 本文中我们将探讨数据框的概念,以及它们如何与PySpark一起帮助数据分析员来解读大数据集。...这个方法将返回给我们这个数据框对象中的不同的信息,包括每的数据类型其可为空值的限制条件。 3. 列名个数(行) 当我们想看一下这个数据框对象的各列名、行数或数时,我们用以下方法: 4....这里我们的条件是Match ID等于1096,同时我们还要计算有多少记录或行被筛选出来。 8. 过滤数据(多参数) 我们可以基于多个条件(AND或OR语法)筛选我们的数据: 9....PySpark数据框实例2:超级英雄数据集 1. 加载数据 这里我们将用与上一个例子同样的方法加载数据: 2. 筛选数据 3. 分组数据 GroupBy 被用于基于指定的数据框的分组。...这里,我们将要基于Race对数据框进行分组,然后计算各分组的行数(使用count方法),如此我们可以找出某个特定种族的记录数。 4.

6K10

PySpark SQL——SQLpd.DataFrame的结合体

导读 昨日推文PySpark环境搭建和简介,今天开始介绍PySpark中的第一个重要组件SQL/DataFrame,实际上从名字便可看出这是关系型数据库SQLpandas.DataFrame的结合体,...功能也几乎恰是这样,所以如果具有良好的SQL基本功熟练的pandas运用技巧,学习PySpark SQL会感到非常熟悉舒适。...,由下划线连接,例如some_funciton) 02 几个重要的类 为了支撑上述功能需求和定位,PySpark中核心的类主要包括以下几个: SparkSession:从名字可以推断出这应该是为后续spark...groupby/groupBy:分组聚合 分组聚合是数据分析中最为常用的基础操作,其基本用法也与SQL中的group by关键字完全类似,既可直接根据某一字段执行聚合统计,也可根据某一的简单运算结果进行统计...提取相应数值,timestamp转换为时间戳、date_format格式化日期、datediff求日期差等 这些函数数量较多,且与SQL中相应函数用法语法几乎一致,无需全部记忆,仅在需要时查找使用即可

9.9K20

数据分析基础——EXCEL快速上手秘籍

我们的问题是“计算每个月,每个省份的销售额”,那就是按照“月”“省份”来进行分组了。 以哪个字段分组,就将哪个字段拖到行或者,像下面这样: ?...起始时间默认是源数据中最早最晚时间,这里不用更改,“步长”就是选择以什么时间维度去分组,我们想以月的维度创建分组,所以选择“月” ? 这透视表分组,如你所愿了,行是月份,是省份。...比如year(时间)得到的就是年份,month(时间)会返回月份,minute(时间)得到具体的分钟数,second(时间)亦然。至于weekday嘛有点特殊,他有两个参数: ?...上述这些GUYS在实践中常用于构建辅助。 3.2 DAYS DAYS(结束日期,开始日期),输入结束日期开始日期,DAYS函数会计算返回两个日期的相差天数: ?...6.2 SUMSUMIF SUM函数很好懂,常用于对某一区域求和,SUM(区域)就是对该区域内所有数值求和。 SUMIF用法稍微复杂点,SUMIF(匹配,条件,求和) 直接上例子 ?

1.9K00

数据分析基础——EXCEL快速上手秘籍

我们的问题是“计算每个月,每个省份的销售额”,那就是按照“月”“省份”来进行分组了。 以哪个字段分组,就将哪个字段拖到行或者,像下面这样: ?...起始时间默认是源数据中最早最晚时间,这里不用更改,“步长”就是选择以什么时间维度去分组,我们想以月的维度创建分组,所以选择“月” ? 这透视表分组,如你所愿了,行是月份,是省份。...比如year(时间)得到的就是年份,month(时间)会返回月份,minute(时间)得到具体的分钟数,second(时间)亦然。至于weekday嘛有点特殊,他有两个参数: ?...上述这些GUYS在实践中常用于构建辅助。 3.2 DAYS DAYS(结束日期,开始日期),输入结束日期开始日期,DAYS函数会计算返回两个日期的相差天数: ?...6.2 SUMSUMIF SUM函数很好懂,常用于对某一区域求和,SUM(区域)就是对该区域内所有数值求和。 SUMIF用法稍微复杂点,SUMIF(匹配,条件,求和) 直接上例子 ?

2K10

独家 | Python处理海量数据集的三种方法

甚至,如果数值型数据包括了缺失值,推断数据类型就会自动填充为浮点型。...以下是使用该选项浏览Yelp reviews 数据集的例子,提取每个块里评论日期的最小值最大值,然后重建评论的完整时间跨度: reader = pd.read_json(reviews_path...70dbc82b0e98)里,我提供了一个Pyspark的例子,对一个大于内存的数据集做探索性分析。...点击文末“阅读原文”加入数据派团队~ 转载须知 如需转载,请在开篇显著位置注明作者出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。...有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。 发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。

74830
领券