销售计算的问题

销售计算的问题 题目是给了你一张图,让你去写一段SQL,输出下面的结果,结果保留两位小数。 哈哈,用pivot也可以的哦,用row_number、if和round函数也可以,不过就是会复杂一点 第三个问题我们来看某一时间点直播间最大在线人数的问题 【题目】给定一张用户进入直播间事件表user_live,表中包含四个字段,分别是直播间id:【live_id】,用户ID:【user_id】,进入时间:【login_time】,退出时间:【logout_time】

【问题】计算每分钟最大在线人数 解决这个问题的思路是什么呢 假如我们用一个变量user_cnt记录当前在线人数,那么有用户进入则+1,有用户退出则-1。其实也就是只有在用户进入或者退出时,才会有人数变化。 所以可以先对原数据做一些格式上的处理,将进入退出时间统称为事件时间,增加一个时间类型(1进入、-1退出) 这样的话,就可以在每条记录后运用sum() over()窗口函数记录此时的用户数 最后在根据需求对时间戳处理,求得某时间段的最大最小在线人数 其实这个问题很多运营小伙伴也会遇到吧你们又是怎么解决的呢 下一个问题跟具体的业务关系不是很大,属于SQL的基础知识了 看懂了之后还要经过大量的训练和练习才可以哦,数据分析本身就是一个实操性很强的岗位 【问题】说出count(1)、count(*)和count(列名)的区别是什么? 1.从执行结果来看:

  • count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL
  • count(1)包括了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULL
  • count(列名)只包括列名那一列,在统计结果的时候,会忽略列值为空(这里的空不是只空字符串或者0,而是表示null)的计数,即某个字段值为NULL时,不统计 2.从执行效率来看
  • 如果列为主键,count(列名)效率优于count(1)
  • 如果列不为主键,count(1)效率优于count(列名)
  • 如果表中存在主键,count(主键列名)效率最优
  • 如果表中只有一列,则count(*)效率最优
  • 如果表有多列,且不存在主键,则count(1)效率优于count(*) 今天的几道题目主要是想让大家简单的了解一下在数据分析面试过程中问到的关于SQL的问题都是哪些类型的,这样大家在准备面试的过程可以更有把握 其实在面试过程中面试官不会问你难度太高、太复杂的问题,面试是为了了解你的能力,而不是为了难倒你,所以大家在准备的时候平常心,把一些基础的、针对性的内容去好好准备,然后就是平时自己抓住机会多加练习 最好是能够结合具体的业务环境去训练自己的思维和分析能力 这样在面试的过程中碰到具体的问题才不会手忙脚乱 “我亦无他,惟手熟尔。”
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务