![e3103fb1e5f3def826e1c7aa2c79531d.png](https://i-blog.csdnimg.cn/blog_migrate/0deea6cbd375f30bbacae1df503dba8c.jpeg)
SQL题
快手数据分析实习生面试题
表sale如下所示,查询每个商品类目下当月累计销量金额大于9万的卖家数占比分布。
![f0fb76c510107f858d299f30ca885a5d.png](https://i-blog.csdnimg.cn/blog_migrate/1e6cefe8058fc101254f5ec819e080dd.png)
解题思路
第一步:在原表中增加月份列,并将查询结果作为表a
select *, month(date) as 月份 from sale;
![3537b72cd1d83445256009ecf65e39e1.png](https://i-blog.csdnimg.cn/blog_migrate/ae0fbc9b2a25372547b3a17352e61c04.png)
第二步:计算每月卖家总数,将查询结果作为表b
select month(date) as 月份, count(distinct seller_id) as 卖家总数
from sale
group by month(date);
![2500e229c69c78b3e807ba3d7e0e4959.png](https://i-blog.csdnimg.cn/blog_migrate/9ea47e1eb0681c57f6ae1235d437ebac.png)
第三步:采用左连接,将表a和表b按月份进行连接,并根据分组字段“商品类目”,“月份”和筛选条件“累计金额大于9万”写出SQL语句
select a.p_class, a.月份, count(distinct a.seller_id) as 卖家数, b.卖家总数,
count(distinct a.seller_id)/b.卖家总数 as 人数占比
from (select *, month(date) as 月份 from sale) as a
left join (select month(date) as 月份, count(distinct seller_id) as 卖家总数 from sale group by month(date)) as b
on a.月份 = b.月份
group by a.p_class, a.月份
having sum(a.pay_amount) > 90000;
![132f43ef8ee7ed31ab31f41a03a8b8b5.png](https://i-blog.csdnimg.cn/blog_migrate/0234a90dd27376b84c4b661b1ac90075.png)
概率统计
统计抽样知识点总结
![3bccc1acfef2955b61ce10b96a847b2f.png](https://i-blog.csdnimg.cn/blog_migrate/107f6749fe3e6abc557c387fd2805bba.jpeg)