123
返回列表 发新帖
楼主: 李浩泉
跳转到指定楼层
上一主题 下一主题
收起左侧

新人发帖,分享DS、BIE、DE、SDE、TPM、PM面试经验

🔗
 楼主| 李浩泉 2020-6-16 10:47:10 | 只看该作者
全局:
本帖最后由 李浩泉 于 2020-6-16 10:57 编辑

12. amazon prime video stream的表,Is weekday stream higher than weekend stream。需要 count if, sum if

  1. COUNT(CASE WHEN A = 42 THEN 1 END) +
  2.        COUNT(CASE WHEN B = 42 THEN 1 END) +
  3.        COUNT(CASE WHEN C = 42 THEN 1 END)
复制代码


回复

使用道具 举报

🔗
modifiedname 2020-6-16 10:48:17 | 只看该作者
全局:
有点困惑。为什么发在这个版?
回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-6-16 10:58:52 | 只看该作者
全局:
K姐 发表于 2020-6-16 10:48
有点困惑。为什么发在这个版?

没有权限,新人只能在这里发帖。
回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-6-16 11:04:55 | 只看该作者
全局:
本帖最后由 李浩泉 于 2020-6-16 12:03 编辑

13、

Table1: orders(customer_id | Order_id | Order_date | Price | Quantity)
Table2: Customers(customer_id | Country)
Table3: marketplace(customer_id | marketplace | order_id)

a. Top 3 Countries in terms of Customers, orders and revenue. Also check if any country lies in top 3 for all the criteria

  1. SELECT TOP 3 Country
  2. FROM Customers
  3. GROUP BY Country
  4. ORDER BY COUNT(customer_id) DESC

  5. SELECT TOP 3 Country
  6. FROM Customers LEFT JOIN orders ON Customers.customer_id = orders.customer_id
  7. GROUP BY Country
  8. ORDER BY COUNT(Order_id) DESC

  9. SELECT TOP 3 Country
  10. FROM Customers LEFT JOIN orders ON Customers.customer_id = orders.customer_id
  11. GROUP BY Country
  12. ORDER BY SUM(Price*Quantity) DESC

  13. SELECT TOP 3 Country
  14. FROM Customers
  15. WHERE Country IN (
  16.   SELECT TOP 3 Country
  17.   FROM Customers LEFT JOIN orders ON Customers.customer_id = orders.customer_id
  18.   GROUP BY Country
  19.   ORDER BY COUNT(Order_id) DESC
  20. ) AND Country IN (
  21.   SELECT TOP 3 Country
  22.   FROM Customers LEFT JOIN orders ON Customers.customer_id = orders.customer_id
  23.   GROUP BY Country
  24.   ORDER BY SUM(Price*Quantity) DESC
  25. )
  26. GROUP BY Country
  27. ORDER BY COUNT(customer_id) DESC
复制代码


b. How many customers placed at least 2 orders from US within last one week and how many of these orders are of value >15$

  1. SELECT customer_id
  2. FROM orders LEFT JOIN Customers ON orders.customer_id = Customers.customer_id
  3. WHERE Country = 'US' AND DATEADD(DAY,7,Order_date) > GETDATE()
  4. HAVING COUNT(Order_id) >= 2
复制代码




c. Who is the 2nd highest spending customer for last 5 years among those who transact exclusively in marketplace 'US' only and what's his spend
回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-6-16 11:08:17 | 只看该作者
全局:
14.

Order
(order_item_id, order_id, date, product_id, sales_amount, seller_id, customer_id)

Product
(product_id, product_category)

    a. find the customers who make purchase on each day in the last 7 days.


    b. find the customers who purchase electronic product (product_category='Electronics') on each day in the last 7 days.
回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-6-16 12:08:54 | 只看该作者
全局:
13b2 :




  1. SELECT COUNT(Order_id) AS orders_over_150
  2. FROM orders
  3. WHERE DATEADD(DAY,7,Order_date) > GETDATE() AND Price*Quantity > 15
  4.       AND customer_id IN (
  5.   
  6. SELECT customer_id
  7. FROM orders LEFT JOIN Customers ON orders.customer_id = Customers.customer_id
  8. WHERE Country = 'US' AND DATEADD(DAY,7,Order_date) > GETDATE()
  9. HAVING COUNT(Order_id) >= 2

  10.   )
复制代码


回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-6-16 12:43:23 | 只看该作者
全局:


  1. Select product
  2. From (
  3.   select product, order_date
  4.   from sales
  5.   where DATEADD(DAY,7,order_date) > GETDATE() ) T
  6. Group by product
  7. Having COUNT(distinct order_date) = 7
  8. Order by product
复制代码


回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-6-26 23:51:14 | 只看该作者
全局:
本帖最后由 李浩泉 于 2020-6-26 23:52 编辑

看到一个兄弟发的,很好,留着面试case study聊天用。

一般在数据分析的时候,我们总是喜欢用到线性模型。这倒不是说线性模型有多好,而是因为它简单。

举个例子,两个城市相距300公里,如果开车速度为50公里/小时,那就需要6个小时到达。如果开车速度为100公里/小时,那就需要3个小时到达。按这个线性模型,如果每小时开150公里,那就2个小时。如果车速为300公里,那么1个小时就到了。

这样的模型显然有问题!如果你的车速为150公里/小时,那么极有可能会被警察抓住。不过在罚款以后,还是可以到达目的地。但是如果你的车速为300公里/小时,那么极有可能根本到不了目的地就出事故了。. check 1point3acres for more.

可见,线性模型未必正确。只是由于复杂的模型自己学起来费劲,给别人讲得时候更费劲,那就只能退而求其次,说一下群众喜闻乐见的线性模型。这样我们讲起来轻松,听众听起来也明白。

但是在使用线性模型预测时,我们会发现它有很多问题。这是因为模型的线性假设本身就不一定成立。因此,这样的模型精度不会太高。为了解决这个问题,我们可以用岭回归(ridge regression), lasso, 主成分回归(principal component regression)等方法。但是,这样做也有问题。那就是我们依旧是在做线性模型的裱糊匠,治标不治本。

因此,我们要跳出线性模型的能力圈。并且在自己可以解释模型的能力圈内,尽量放松线性模型的假设。比方说,我们可以用多元回归模型(Polynomial regression),分步函数(Step function)进行分析。或者用一些复杂的模型分析,例如样条(Regression splines)、局部回归(local regression)以及广义相加模型(generalized additive models)。

1.        多元回归。多元回归就是在线性回归的基础上,增加一些自变量,提高模型的解释能力。比方说,在立方回归(Cubic regression)中,我们可以使用X,X平方和X立方作为自变量。这就是一种简单拟合非线性曲线的办法。

2.        分步函数。我们可以把数据分成若干部分,产生一个类别型变量,然后在进行回归。简单地讲,就是用分段函数的方法进行回归。. check 1point3acres for more.

3.        回归样条。多元回归和分步函数有一些问题,例如当多项式的幂比较高时,很小的变化都会被很大的放大。而样条回归更加灵活,它把区域X被分成了K个区域。然后在每个区域中用多项式拟合曲线。通过增加限定条件,使得多项式每个在节点(Knot)处平滑连接。只要我们能划分出足够多的区域,那么就可以拟合出十分灵活的曲线。

4.        平滑样条(Smoothing splines)。这个方法和回归样条类似,只是产生的原因不同。在平滑惩罚(Smoothness penalty)的限制条件下,最小化残差和的平方,就会产生平滑样条。

5.        局部回归。这方法和样条法类似,但也有区别。那就是所分的区域可以有重叠。由于重叠,就可以保证曲线的平滑。

6.        广义相加模型。这个方法是以上方法在有不止一个自变量时候的延伸。
回复

使用道具 举报

全局:
LZ太良心了,本new grad看你的帖子真的很长知识
回复

使用道具 举报

🔗
wIInTer 2021-4-30 01:15:45 | 只看该作者
全局:
Mark一下,做笔记
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表