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

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

如计算左边雇员编号10002的累计薪水则需用到右边雇员编号(1)中10001和10002两人的当前薪水,且需要满足右边雇员编号(1)<=左边雇员编号 根据左边的雇员编号和薪水分组,再对右边的薪水(1)...那么,上述的表是如何得出的呢?...-01-01'order by s1.雇员编号; 最后用 group by 对雇员编号,薪水进行分组,并用 sum 函数对薪水(1)进行求和: select s1.雇员编号,s1.薪水,sum(s2....avg(列名) over (order by 的列名>) 所以,我们可以得出“累计求和”问题的万能模板是: select 列1,列2,sum(列名) over (partition by 分组的列名...> order by 的列名>) as 累计值的别名from 表名; 【举一反三】 下表为确诊人数表,包含日期和该日期对应的新增确诊人数 按照日期进行升序排列

1.1K20

如何分析交易记录?

image.png 4.两表做关联时,其中一张表的关联键有大量的null值会造成什么影响?如何规避? 【解题思路】 1.type1的用户类型中,找出单用户的总交易金额最大的一位用户?...根据各用户类型、用户id分组 (group by),统计每个用户数总费用(求和函数sum) 1 select 用户交易记录表....2)第2笔交易记录,是指按照交易时间对每个用户的交易记录进行排名,然后取出排名第2的数据。 又涉及到分组,又涉及到排名的问题,要想到用《猴子 从零学会SQL》里讲过的窗口函数来实现。...所以使用分组(窗口函数partiotion by 用户id),并按最后交易时间升序排列(order by交易时间 asc),套入窗口函数的语法,得出下面的sql语句: 1 select 用户交易记录表...id; 4.两表做关联时,其中一张表的关联键有大量的null值会造成什么影响?

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

    mysql基本命令

    (null 不计) -- sum: 求和 -- max: 最大值 -- min: 最小值 -- avg: 平均值 -- ===count,求和,对指定列的[数据个数]求和 count(列名).就是看该列有多少条数据...'a'默认为函数名,在此处也就是count(*),可以进行修改↑; -- ===sum,求和,对指定列的[数据值]求和 sum(列名),就是看该列中所有值相加的和. select sum(列名) from...-- $分组查询(关键字:group by) -- 跟随聚合函数使用:group by(被分组的列名); -- select查询时,被分组的列要出现在select选择列后面; -- ↓按照列2的相同内容对列...列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

    使用R或者Python编程语言完成Excel的基础操作

    以下是一些其他的操作: 数据分析工具 数据透视表:对大量数据进行快速汇总和分析。 数据透视图:将数据透视表的数据以图表形式展示。 条件格式 数据条:根据单元格的值显示条形图。...色阶:根据单元格的值变化显示颜色的深浅。 图标集:在单元格中显示图标,以直观地表示数据的大小。 公式和函数 数组公式:对一系列数据进行复杂的计算。...目标 找出每个商店每月的总销售额,并按商店和日期排序。...目标 找出每个商店每月的总销售额,并按商店和日期排序。...Python中使用Pandas库进行数据的读取、类型转换、增加列、分组求和、排序和查看结果。

    23810

    四、五行代码就能搞定几百份表格的拆分!

    我们经常会在工作中遇见,类似下图中的表格(原始表格共计5136条数据),上级要求你将品名列的商品筛选出来,并按照“品名+.xlsx”的格式单独保存为一个exce工作簿,或者以品名为名保存为多个工作表,这样数据少了还好说...代码实现 导入模块和文件: import pandas as pd df = pd.read_csv('价格.csv') 本文关键步骤是通过两个方法实现的,两个方法会分别实现如何取值、保存为工作表以及工作簿...unique函数是以数组形式返回列的所有唯一值,也就是相同的两个值只返回一个。...groupby()函数主要的作用是进行数据的分组以及分组后进行运算,本文只要用到groupby()函数的分组功能。...# 保存为工作表: with pd.ExcelWriter('价格总表1.xlsx') as writer: # i为品名唯一值,e为数据分组 for i, e in df.groupby

    79030

    游戏行业实战案例4:在线时长分析

    登录时间从“登录日志”表获取,登出时间从“登出日志”表获取。那么,如何对玩家的登录时间、登出时间进行一一对应呢? 玩家每次登录后必然伴随着登出,因此玩家的登录时间顺序与登出时间顺序是一致的。...左联结时,还需要设置条件使两个临时表的角色id、日期和排名相等,这样才能使登录登出时间一一对应。...计算各玩家每天的总在线时长 使用group by子句对角色id、日期进行分组,再使用sum()函数对每个玩家每天的每次在线时长进行求和,就可以得到各玩家每天的总在线时长。...左联结时,还需要设置条件使两个临时表的角色id、日期和排名相等,这样才能使登录登出时间一一对应。...计算各玩家每天的总在线时长 使用group by子句对角色id、日期进行分组,再使用sum()函数对每个玩家每天的每次在线时长进行求和,就可以得到各玩家每天的总在线时长。

    4K30

    使用 QueryDSL 进行动态查询:`QueryBase` 类及其常用方法

    本文将介绍 QueryBase 及其子类的常用方法,并通过三个综合案例来展示如何在实际项目中使用这些方法。...query.leftJoin(QEntity.entity.relatedEntity); 5. groupBy groupBy 方法用于对查询结果进行分组。...List results = query.fetch(); 综合案例 案例一:查询所有活跃的用户 假设我们有一个用户实体 User,我们希望查询所有活跃的用户,并按注册日期排序。...实体的元数据 QProduct qProduct = QProduct.product; // 构建查询:选择类别和平均价格,从产品表中查询,按类别分组,条件是平均价格大于100 List<Tuple...("Category: " + category + ", Average Price: " + avgPrice); } 案例三:分页查询订单记录 假设我们需要分页查询订单记录,每页显示10条数据,并按订单日期排序

    7500

    SQL 基础(四)单关系数据查询

    3.确定范围(全匹配) 4.确定集合(全匹配) 5.模糊查询(部分匹配) 6.空值查询 统计汇总查询 分组查询 排序查询结果 单关系(表)数据查询结构 查询结果仍为表,WHERE、SELECT 分别相当于关系代数中的...-- 指定数据库 SELECT sno,sn,birthday -- 查询信息指定 FROM tb_student -- 指定表 计算成绩表中学生年龄,并用学号、姓名、年龄做表头 方法:当前日期减去生日日期求得年龄...求列最大值 MIN 求列最小值 COUNT 按列求个数 count(*) 对表中数目进行计数,无论是否为空 count(colum) 对特定列中具有的值计数,忽略 NULL 查询学号为 XXX 的学生总成绩和平均成绩...select 中既有基本字段又有聚合函数时需要 group by,否则将会出现语法错误 空值作为单独分组返回值 查询选修两门课以上课程的学生学号和选课总数 select sno,COUNT(*)...查询成绩表中,选修 c10 课程的学生学号,并按成绩降序排列 select sno,score from tb_score where (cno='c10') order by score DESC

    1.2K30

    游戏行业实战案例 4 :在线时长分析

    问题 4 : 统计各玩家每天总在线时长分为两步: 第一步,计算各玩家每天每次登录游戏后的在线时长; 第二步,对各玩家每天每次的在线时长进行求和,得到各玩家每天的总在线时长。 1....登录时间从「登录日志」表获取,登出时间从「登出日志」表获取。那么,如何对玩家的登录时间、登出时间进行一一对应呢? 玩家每次登录后必然伴随着登出,因此玩家的登录时间顺序与登出时间顺序是一致的。...如何一一对应呢?通过横向联结就可以实现,即使用 join 联结方法。...左联结时,还需要设置条件使两个临时表的角色 id 、日期和排名相等,这样才能使登录登出时间一一对应。...计算各玩家每天的总在线时长 使用 group by 子句对角色 id 、日期进行分组,再使用 sum() 函数对每个玩家每天的每次在线时长进行求和,就可以得到各玩家每天的总在线时长。

    23010

    从Excel到Python:最常用的36个Pandas函数

    使用merge函数对两个数据表进行合并,合并的方式为inner,将 两个数据表中共有的数据匹配到一起生成新的数据表。并命名为 df_inner。...4.数据分组 Excel中可以通过VLOOKUP函数进行近似匹配来完成对数值的分组,或者使用“数据透视表”来完成分组 Python中使用Where函数用来对数据进行判断和分组 #如果price列的值>3000...还可以对多个字段的值进行判断后对数据进行分组,下面的代码中对city列等于beijing并且price列大于等于4000的数据标记为1。...Reset_index函数用于恢复索引,这里我们重新将date字段的日期 设置为数据表的索引,并按日期进行数据提取。 #重设索引 df_inner.reset_index() ?...对筛选后的price字段 进行求和,相当于Excel中的sumifs函数的功能。

    11.5K31

    四种分组求和方法,操作简单效率又高的竟然是这个!| Power Query实战

    这个问题很常见,解决起来也不难,即按“型号+序号”进行分组,对后面各“日期”列求和: 这个问题的方法很多,当数据量不大的时候,各种方法在效率上不会有多大的差异,但是,如果数据量很大,可能就会体现出来较大的差别...- 1 - 直接分组法 直接分组法很简单,就是直接选中“型号”和“序号”列,然后“分组”,在分组里通过多次“添加聚合”,完成对每个日期列的求和: 这种方法从理解上来说最简单,而且,经测试,也是运行效率最高的...- 2 - 直接分组扩展聚合法 直接分组扩展聚合法,是在分组的基础上,对分组结果表进行展开,并在展开的过程中进行聚合的方法。...但这个问题既然都在Power Query里处理,那么,逆透视后,可以对“型号”、“序号”及“日期(属性)”三列进行分组求和,然后再透视即得结果。...Step-01 选定“型号”和“序号”列,单击“逆透视其他列”: Step-02 选定“型号”、“序号”和“属性”(日期)列,分组对“值”列求和: Step-03 选择“属性”列,单击“透视列”,在值列中选择

    4.8K30

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

    用户视频信息明细表包含用户id,发布视频id,视频点赞数,视频发布日期,视频类别和用户的粉丝数。 主播开播明细表包含主播id,主播开直播房间的id号,和开播的时间。...要求每个用户上传的每一条视频都要显示出来,我们知道 group by分组汇总后改变了表的行数,一行只有一个类别。...按用户id分组(partiotion by 用户id)、并按最点赞数、视频id降序排列(order by点赞数,视频id ),降序排列desc用套入窗口函数的语法,得出下面的SQL语句: select...我们将发布时间限定在6月1号-2号之间,使用if函数和sum函数来计算涨粉数,如果发布日期是6月2号,显示字段”用户累计粉丝数”,如果不是就显示”(负)-用户累计粉丝数”,最后求和得出涨粉数。...in ("2022/6/2","2022/6/1") group by 用户id; 查询结果: 2)找出前3个粉丝提升最多的用户id 得出每个用户在6月2号的涨粉数作为临时表t,用order by对用户的涨粉数进行降序排序

    77130

    Hive面试题持续更新【2023-07-07】

    应用场景:分区表适用于根据某个或多个列的值对数据进行逻辑划分和组织的场景。例如,按照日期对日志数据进行分区,按照地区对销售数据进行分区等。...开窗函数与分组函数类似,都可以对数据进行分组处理,但开窗函数能够在每个分组内部的行上执行计算,而不是返回单个聚合值。...Hive支持以下几种常用的开窗函数: ROW_NUMBER: 为每行数据分配一个唯一的整数值,常用于生成行号。 RANK: 计算每行数据的排名,如果有相同值,则排名相同并按照下一个值跳过相应的排名。...LAG: 获取当前行之前指定偏移量的行的值。 LEAD: 获取当前行之后指定偏移量的行的值。 FIRST_VALUE: 获取分组中的第一个行的值。...LAST_VALUE: 获取分组中的最后一个行的值。 SUM, AVG, MIN, MAX: 常用的聚合函数,可以在窗口内进行计算。 开窗函数的语法通常包括两个部分:函数调用和窗口规范。

    12610

    SparkSQL练习题-开窗函数计算用户月访问次数

    再用max最大值对累加结果开窗,根据用户ID分区,按照日期和用户ID排序,因为有重复的日期,所以需要两个限制条件,这一步计算出了用户每个月的最大访问量,但是未分区排序去重; +------+----...userID 和 date 进行分组。...这意味着具有相同 userID 和 date 值的行将被归为同一组。 ORDER BY userID, date 语句的作用是对分组后的结果集进行排序。...它按照 userID 和 date 的升序对结果进行排序,使得相同 userID 的行按照 date 的顺序排列。...这样做的功能是确保结果集中的行按照 userID 和 date 的顺序进行排列,使得相同用户的不同日期的记录按照日期的先后顺序呈现,方便查看和分析数据。

    6910

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

    那是因为,我们源数据格式是酱紫的,数据透视表分组逻辑是判断是否唯一,如果唯一则单独分为一行(或一列),想要把行标签的日期格式变成月的维度,也HIN简单。...分组完了,下面就是个性化计算,我们要计算涉及到的核心字段是销售额,在已经分好组的情况下,只需要把销售额字段拖到值的位置: ? 数据透视表随之改变,大功告成。。。了吗? ?...进入“值字段设置”, ? 这里的”计算类型“是个性化计算的核心了,选择”求和“,我们就得到各月各省的销售额总和,”平均值“就是各月各省销售额平均值,最大值、最小值依然。...6.2 SUM和SUMIF SUM函数很好懂,常用于对某一区域求和,SUM(区域)就是对该区域内所有数值求和。 SUMIF用法稍微复杂点,SUMIF(匹配列,条件,求和列) 直接上例子 ?...第三个参数规定了求和列,是对销量进行汇总,自然就是B:B。 ?

    2K00

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

    那是因为,我们源数据格式是酱紫的,数据透视表分组逻辑是判断是否唯一,如果唯一则单独分为一行(或一列),想要把行标签的日期格式变成月的维度,也HIN简单。...分组完了,下面就是个性化计算,我们要计算涉及到的核心字段是销售额,在已经分好组的情况下,只需要把销售额字段拖到值的位置: ? 数据透视表随之改变,大功告成。。。了吗? ?...进入“值字段设置”, ? 这里的”计算类型“是个性化计算的核心了,选择”求和“,我们就得到各月各省的销售额总和,”平均值“就是各月各省销售额平均值,最大值、最小值依然。...6.2 SUM和SUMIF SUM函数很好懂,常用于对某一区域求和,SUM(区域)就是对该区域内所有数值求和。 SUMIF用法稍微复杂点,SUMIF(匹配列,条件,求和列) 直接上例子 ?...第三个参数规定了求和列,是对销量进行汇总,自然就是B:B。 ?

    2.1K10

    pandas系列5-分组_groupby

    (需要按照职业进行分组)并按照平均年龄从大到小排序?(分组之后对年龄求平均再排序) 分别找出男人和女人每种职业的人数?(按照男女分组) 更进一步, 如何找出男人和女人在不同职业的平均年龄?...(先按男女分组,再按照不同职业分组,再求平均年龄) ---- 问题1 : 如何找出每一种职业的平均年龄?并按照平均年龄从大到小排序?...对两个属性同时进行分组 再进行size函数求和 df.groupby(['occupation','gender']).size() # Output occupation gender administrator...问题3 : 如何找出男人和女人在不同职业的平均年龄?...:均值、最大最小值、计数、求和等,需要调用agg()方法 grouped = df.groupby("sex") grouped["age"].agg(len) grouped["age"].agg([

    1.7K20
    领券