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

「SQL面试题库」 No_115 日期分组销售产品

今日真题 题目介绍: 日期分组销售产品 group-sold-products-by-the-date 难度简单 SQL架构 表 Activities : +-------------+-...此表的每一行都包含产品名称和在市场上销售的日期。 编写一个 SQL 查询来查找每个日期、销售的不同产品的数量及其名称。 每个日期的销售产品名称应按词典序排列。...返回 sell_date 排序的结果表。 查询结果格式如下例所示。...---+----------+------------------------------+ 对于2020-05-30,出售的物品是 (Headphone, Basketball, T-shirt),词典序排列...对于2020-06-01,出售的物品是 (Pencil, Bible),词典序排列,并用逗号分隔。 对于2020-06-02,出售的物品是 (Mask),只需返回该物品名。

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

实用编程技巧:MybatisPlus结合groupby实现分组sum求和

签约讲师,CSDN博客专家,华为云云享专家,阿里云专家博主 擅长领域:全栈工程师、爬虫、ACM算法 公众号:知识浅谈 网站:vip.zsqt.cc ✅MybatisPlus结合groupby实现分组...sum求和 这次使用的是LambdaQueryWrapper,使用QueryWrapper相对来说简单点就不写了 实现GroupBy分组 第一步: 实体类中新增一个字段count @TableName...Data public class User implements Serializable { @TableId(type = IdType.AUTO) private Integer id..."name": null, "age": null, "state": "2", "count": 2 } ] 实现GroupBy分组之后再sum求和 第一步: 实体类中新增一个字段...updateStrategy = FieldStrategy.NEVER) private Integer count; //这个地方 @TableField(value = "sum

2.6K10

MySQL实现分组统计,提供完整日期列表,无数据自动补0

业务需求 最近要在系统中加个统计功能,要求是指定日期范围里分组统计数据量,并且要能够查看该时间段内每天的数据量。...解决思路 直接数据表日期字段group by统计,发现如果某天没数据,该日期是不出现的,这不太符合业务需求。...百度一番发现方案大致有两种:一是新建日期列表,把未来10年的日期放进去,然后再跟统计表作连接查询;二是用程序代码在SQL逻辑中union多个连续日期查询。都比较繁琐。...参考Oracle的“select level from dual connect by level < 31”的实现思路: 1、先用一个查询把指定日期范围的日期列表搞出来 SELECT     @cdate...as date_count FROM(SELECT @cdate: = date_add(CURDATE(), interval + 1 day) from t_table1) t1 2、业务统计查询也上述日期查询给统计日期和数量设置别名

5K10

Python日期范围整月以及剩余区间拆分

原文:Python日期范围整月以及剩余区间拆分 地址:https://blog.csdn.net/as604049322/article/details/135033118 小小明 昨天见到了一个比较烧脑的问题...: image-01 咋一看可能理解问题比较费劲,可以直接看结果示例: image-02 当然这个结果在原问题上基础上有一定改进,例如将同一天以单个日期的形式展示。...首月、中间连续月、末月三部分 针对中间连续月直接生成月份即可 首月末月都可以使用一个拆分函数进行计算 针对单月区间的计算思路: 将日期拆分为s-10,11-20,21-e这三个以内的区间 遍历区间,...自己上一个区间都不是旬区间则进行合并 遍历合并后的区间,根据是否为旬区间进行不同的日期格式化 最终我的完整代码为: from datetime import datetime, timedelta...def get_month_end(date): "获取日期当月最后一天" next_month = date.replace(day=28) + timedelta(days=4)

13510

在终端里你的方式显示日期时间

你键入 date,日期时间将以一种有用的方式显示。...它包括星期几、日期、时间时区: $ date Tue 26 Nov 2019 11:45:11 AM EST 只要你的系统配置正确,你就会看到日期当前时间以及时区。...但是,该命令还提供了许多选项来以不同方式显示日期时间信息。...例如,如果要显示日期以便进行排序,则可能需要使用如下命令: $ date "+%Y-%m-%d" 2019-11-26 在这种情况下,年、月该顺序排列。...假设你需要创建一个每日报告并在文件名中包含日期,则可以使用以下命令来创建文件(可能用在脚本中): $ touch Report-`date "+%Y-%m-%d"` 当你列出你的报告时,它们将日期顺序或反向日期顺序

3.5K30

php将二维数组日期(支持YmdYnj格式日期)排序 转

思路: 将所有日期转化成时间戳保存在新数组里面(新数组1新数组2), 将新数组2排序, 再将新数组2中的元素逐个查找在数组1中的索引, 根据索引将原始数组重新排序, 最终得到排序后的二维数组。...-24',         ],     ]; var_dump(order_date_array($array, 'desc', 'date')); /*  * 将二维数组日期...(支持YmdYnj格式日期)排序  * order_date_array(原始二维数组, desc还是asc, 日期在二维数组中的键)  * */ function order_date_array...= [];     $array_1 = [];     $array_2 = [];     // 日期转时间戳     for ($t=0; $t<count($_array); $t...++){         $date = strtotime($_array[$t][$_key]); // Ymd或者Ynj格式日期转时间戳         $array_1[] = $date;

2.9K10

数仓面试——连续登录问题进阶版

详解: 1:利用rown_number,用户分组,登录时间升序 2:本次登录日期减去步骤一生成自增序列,形成第一道日期基准 3:利用dense_rank,用户分组,步骤二形成的日期基准升序 4:步骤二的日期基准减去步骤三的自增序列...,形成最终的日期基准 5:步骤四形成的用户最终日期基准分组,过滤出次数大于等于4的数据 6:按照用户分组去重,获得最终结果 方法二:采用超过两天的登录间隔为分界线分组 SELECT id FROM...(1) >= 4 ) tmp4 GROUP BY id; 详解: 1:利用lag(lead),用户分组,登录时间升序,比较当前日期与上一个登录日期的差 2:如果日期差小于等于2,则连续登录,记为0...4:取出日期基准为1的数据最后一条数据 5:比较当前行前一行rn的差,为连续登录的天数(最后一行特殊处理) 6:根据用户去重,获得结果 方法四:采用sum分组 SELECT id FROM...sum,获取用户到当前行的 4:连续登录用户步骤三求和结果相同(+0) 5:根据用户步骤三求得的分组基准分组,并过滤出连续登录超过4天的用户 6:根据用户分组去重,获得结果 五、拓展 1:连续登录其实是分组问题的一个特例

1.1K40

2-SQL语言中的函数

分类: sum 求和,avg 平均值,max 最大值,min 最小值 特点: sum,avg可以处理数值型数据,max,min,count可以处理任何类型数据 以上几个分组函数都会自动忽略null值...可以distinct搭配使用 # 分组函数 /* 分类:sum 求和,avg 平均值,max 最大值,min 最小值 特点: 1. sum,avg可以处理数值型数据,max,min,count可以处理任何类型数据...可以distinct搭配使用 */ # sum求和 SELECT SUM(salary) FROM employees; # avg求平均值 SELECT AVG(salary) FROM employees...FROM 表 【WHERE 筛选条件】 GROUP BY 分组列表 【ORDER BY 子句】 注意: 查询列表比较特殊,要求是分组函数group_by后出现的字段 分组查询中的筛选可以分为两类 分组前的筛选...BY 分组列表 【ORDER BY 子句】 注意:查询列表比较特殊,要求是分组函数group_by后出现的字段 分组查询中的筛选可以分为两类 1.

2.8K10

Python~Pandas 小白避坑之常用笔记

', sep=',', skiprows=0, usecols=None) duplicated_num = sheet1.duplicated(subset=['user_id']).sum()...) duplicated_num = sheet1.duplicated(subset=['user_id']).sum() # 再次统计user_id列 重复值的数量 print("剔除后-user_id...'].dt.year # 根据日期字段 新增年份列 sheet1['季度'] = sheet1['日期'].dt.quarter # 根据日期字段 新增季度列 # 年度分组,指定销售额列进行求和计算...'].dt.year # 根据日期字段 新增年份列 sheet1['季度'] = sheet1['日期'].dt.quarter # 根据日期字段 新增季度列 # 针对字段:年度、国家进行分组,求和计算字段...) # agg 聚合, 可用列表字典作为参数, 常用函数:mean/sum/median/min/max/last/first # 分组后对某列进行多个函数计算 # compute_result =

3.1K30

基于Hadoop生态圈的数据仓库实践 —— 进阶技术(六)

例如,日期维度就有一个四级层次:年、季度、月日。这些级别用date_dim表里的列来表示。日期维度是一个单路径层次,因为除了年-季度-月-日这条路径外,它没有任何其它层次。...例如,日-月-季度-年这个链条是一个日期维度的层次。除了日期维度,产品客户维度也有层次。 下表显示了三个维度的层次。注意客户维度具有两个路径的层次。...可以在层次上进行分组钻取查询。...这个查询产品(product_category列)日期维度的三个层次级别(year、quartermonth列)分组返回销售金额。...下面使用两种方法进行钻取查询,结果显示了每个日期维度级别(年、季度月级别)的订单汇总金额。

35410

面试 SQL整理 常见的SQL面试题:经典50题

= 149 ) –问题:查询与141号或174号员工的manager_iddepartment_id相同的其他员工的 –employee_id, manager_id, department_id...[成绩表score] where 查询条件 [课程编号为“04”且分数小于60] group by 分组 [没有] having 对分组结果指定条件 [] order by 对查询结果排序[查询结果分数降序排列...,查询结果人数降序排序,若人数相同,课程号升序排序 /* 分析思路 select 查询结果 [要求输出课程号选修人数] from 从哪张表中查找数据 [] where 查询条件 [] group...by 分组 [每门课程:课程号分组] having 对分组结果指定条件 [学生选修人数(超过2人的课程才统计):每门课程学生人数>2] order by 对查询结果排序[查询结果人数降序排序,若人数相同...datetime */ select 学号,姓名 from student where year(出生日期)=1990; 查询各科成绩前两名的记录 这类问题其实就是常见的:分组取每组最大值、最小值

2.2K10

常见的SQL面试题:经典50例

,如:[每个学生的平均:学号分组](oracle,SQL server中出现在select 子句后的非分组函数,必须出现在group by子句后出现),MySQL中可以不用 having 对分组结果指定条件... student(学号,姓名,出生日期,性别)  values('0003' , '马云' , '1991-12-21' , '男');   insert into student(学号,姓名,出生日期... [成绩表score] where 查询条件 [课程编号为“04”且分数小于60] group by 分组 [没有] having 对分组结果指定条件 [] order by 对查询结果排序[查询结果分数降序排列...-2x/ /*  分析思路 select 查询结果 [要求输出课程号选修人数] from 从哪张表中查找数据 [] where 查询条件 [] group by 分组 [每门课程:课程号分组] having...datetime */ select 学号,姓名  from student  where year(出生日期)=1990;  查询各科成绩前两名的记录 这类问题其实就是常见的:分组取每组最大值、最小值

1.9K20

面试中经常被问到的 50 个 SQL 题,必须拿下!

,如:[每个学生的平均:学号分组](oracle,SQL server中出现在select 子句后的非分组函数,必须出现在group by子句后出现),MySQL中可以不用 having 对分组结果指定条件...[成绩表score] where 查询条件 [课程编号为“04”且分数小于60] group by 分组 [没有] having 对分组结果指定条件 [] order by 对查询结果排序[查询结果分数降序排列...,查询结果人数降序排序,若人数相同,课程号升序排序 /* 分析思路 select 查询结果 [要求输出课程号选修人数] from 从哪张表中查找数据 [] where 查询条件 [] group...by 分组 [每门课程:课程号分组] having 对分组结果指定条件 [学生选修人数(超过2人的课程才统计):每门课程学生人数>2] order by 对查询结果排序[查询结果人数降序排序,若人数相同...datetime */ select 学号,姓名 from student where year(出生日期)=1990; 查询各科成绩前两名的记录 这类问题其实就是常见的:分组取每组最大值、最小值

3.1K30

sql语句面试经典50题_sql基础知识面试题

= 149 ) –问题:查询与141号或174号员工的manager_iddepartment_id相同的其他员工的 –employee_id, manager_id, department_id...[成绩表score] where 查询条件 [课程编号为“04”且分数小于60] group by 分组 [没有] having 对分组结果指定条件 [] order by 对查询结果排序[查询结果分数降序排列...,查询结果人数降序排序,若人数相同,课程号升序排序 /* 分析思路 select 查询结果 [要求输出课程号选修人数] from 从哪张表中查找数据 [] where 查询条件 [] group...by 分组 [每门课程:课程号分组] having 对分组结果指定条件 [学生选修人数(超过2人的课程才统计):每门课程学生人数>2] order by 对查询结果排序[查询结果人数降序排序,若人数相同...datetime */ select 学号,姓名 from student where year(出生日期)=1990; 查询各科成绩前两名的记录 这类问题其实就是常见的:分组取每组最大值、最小值

2.8K20

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

names=columns) user_id:客户ID order_dt:订单日期 order_product:订单产品 order_amount:订单金额 1.统计每个客户购买的总数量和平均金额...',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)) 大部分客户只消费了一次,

22710

平平无奇SQL面试题:经典50例

(学号,姓名,出生日期,性别) values('0003' , '马云' , '1991-12-21' , '男'); insert into student(学号,姓名,出生日期,性别) values...[成绩表score] where 查询条件 [课程编号为“04”且分数小于60] group by 分组 [没有] having 对分组结果指定条件 [] order by 对查询结果排序[查询结果分数降序排列...,查询结果人数降序排序,若人数相同,课程号升序排序 /* 分析思路 select 查询结果 [要求输出课程号选修人数] from 从哪张表中查找数据 [] where 查询条件 [] group...by 分组 [每门课程:课程号分组] having 对分组结果指定条件 [学生选修人数(超过2人的课程才统计):每门课程学生人数>2] order by 对查询结果排序[查询结果人数降序排序,若人数相同...分组取每组最大值 案例:课程号分组取成绩最大值所在行的数据 我们可以使用分组(group by)汇总函数得到每个组里的一个值(最大值,最小值,平均值等)。但是无法得到成绩最大值所在行的数据。

2.5K60
领券