SQL面试题-记录自己每次面试遇到的题目1

1、订单汇总表order_jd存储了所有订单明细信息,一个订单有多个商品,记录多行,提取如下数据:

1)统计2019年7月1日当日有效的下单量

2)2019年7月1日有效下单用户中用户级别为“铜牌会员”的用户数量

3)统计2019年7月各个级别下单金额(amount)最多的前10个用户的订单量和订单金额

有效标志,1:有效;0:无效

用户账号

用户级别=56——铜牌

下单日期

回答:

因为以上题目没有给出表结构,所以需要自己建表,这是我根据题意自己建立的表,也不知道对不对。让我比较纠结的是订单中如果存在部分商品被退货,那么这算不算一条有效订单,还是退货的商品为无效,正常的商品为有效。

我目前是不按照商品是否有效来做,还是以一个订单无论有多少个商品,要不全有效,要不全无效来做。

1)思考思路为,count取有效下单量之和,但是一个订单可能有多条记录,那么就会有多条有效下单的记录,需要根据订单id进行去重再计数

select 下单日期,count(distinct 订单id) as 有效下单量
from order_jd
where 有效标志=1 and 下单日期='2019-07-01'
group by 下单日期

得到如下结果:

2)思考思路为,count获取用户数量,但是用户账号也是存在重复的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值