当前位置: 首页 > news >正文

珠海网站建设外包百度商家入驻怎么做

珠海网站建设外包,百度商家入驻怎么做,无代码做网站,济宁网站建设公司电话写在开头#xff1a;本章是Hive教程第六部分#xff0c;着重于归纳SQL编写。文章内容输出来源#xff1a;拉勾教育大数据高薪训练营。本章将介绍Hive中常见的面试题和自己的解答思路#xff0c;以供大家训练和记忆。SQL面试题1、求连续7天登录的用户— 数据。uid dt status…写在开头本章是Hive教程第六部分着重于归纳SQL编写。文章内容输出来源拉勾教育大数据高薪训练营。本章将介绍Hive中常见的面试题和自己的解答思路以供大家训练和记忆。SQL面试题1、求连续7天登录的用户— 数据。uid dt status(1 正常登录0 异常)1 2019-07-11 1 1 2019-07-12 1 1 2019-07-13 1 1 2019-07-14 1 1 2019-07-15 1 1 2019-07-16 1 1 2019-07-17 1 1 2019-07-18 1 2 2019-07-11 1 2 2019-07-12 1 2 2019-07-13 0 2 2019-07-14 1 2 2019-07-15 1 2 2019-07-16 0 2 2019-07-17 1 2 2019-07-18 0 3 2019-07-11 1 3 2019-07-12 1 3 2019-07-13 1 3 2019-07-14 0 3 2019-07-15 1 3 2019-07-16 1 3 2019-07-17 1 3 2019-07-18 1思路典型的连续值求解问题可以按照以下思路进行求解使用 row_number 在组内给数据编号(rownum)某个列值 – rownum gid得到结果可以作为后面分组计算的依据这个某个列值该题目问日期是否连续所以拿日期这列根据求得的gid作为分组条件求最终结果因为求的是连续七天登录的用户所以这个列值选dt,所以先写sqldate_sub为dt与rownum的差值select uid,dt,status, date_sub(dt,row_number() over(partition by uid order by dt)) gid from ulogin where status 1首先来看下结果从上述步骤中我们需要按照gid和uid进行分组然后计算出相同gid的个数然后再选出大于7的数据即可。所以在原先基础上在套一层select查询做条件筛选所以完整SQL这样写select uid,count(*) countlogin from (select uid,dt,status, date_sub(dt,row_number() over(partition by uid order by dt))gid from ulogin where status 1) tmp group by uid,gid having countlogin 7;可以看出连续登陆七天以上的用户只有uid而且uid连续登陆了8天。2.编写sql语句实现每班前三名分数一样并列同时求出前三名按名次排序的分差TopN问题— 数据。sid class score1 1901 90 2 1901 90 3 1901 83 4 1901 60 5 1902 66 6 1902 23 7 1902 99 8 1902 67 9 1902 87— 待求结果数据如下class score rank lagscore 1901 90 1 0 1901 90 1 0 1901 83 2 -7 1901 60 3 -23 1902 99 1 0 1902 87 2 -12 1902 67 3 -20从结果要求上可以看出首先要用到排序函数排除顺序然后使用序列函数将数据整体下移一行然后才可以相减算差值。而且可以看到需要按class分组。首先我们写出有排名函数的sqlselect class,score, dense_rank() over(partition by class order by score desc) rank from stu然后将score下移一行将下移后的数据额外增加一列lagscore并指定按照class分区按照score降序排序。select class,score, dense_rank() over(partition by class order by score desc) rank, lag(score) over(partition by class order by score desc) lagscore from stu从上图中我们可以看到数据下移后会有null值我们可以使用nvl函数进行处理接下来我们处理差值问题我们可以直接用score列减去lag(score) over(partition by class order by score desc)这行sql。如下所示:select class,score, dense_rank() over(partition by class order by score desc) rank, nvl(score-lag(score) over(partition by class order by score desc),0) lagscore from stu接下来按照题目要求要前三名的数据。那么我们可以再嵌套一层select语句加上where条件完成select class,score,rank,lagscore from (select class,score, dense_rank() over(partition by class order by score desc) rank, nvl(score-lag(score) over(partition by class order by score desc),0) lagscore from stu) tmp where rank3;从上可以看出结果。3.综合八道题现在有三张表第一张表的部分数据第二张表的部分数据第三张表部分数据1、按年统计销售额思路使用join连接saledetail和sale表连接条件为orderid又因为按年统计所以要按照年分组。这里使用year函数获取年份sum函数进行求和求和完成后除掉10000意思单位以万元计再使用round函数保留小数点2位。SELECT year(B.dt) year, round(sum(A.amount)/10000, 2) amount FROM saledetail A join sale B on A.orderidB.orderid group by year(B.dt);2、销售金额在 10W 以上的订单思路按照orderid做分组然后求和求出和后选出金额大于十万的数据。SELECT orderid, round(sum(amount), 2) amount FROM saledetail group by orderid having sum(amount) 1000003、每年销售额的差值思路先求出每一年的销售额按照年分组然后求和思路与第一题一致因为要求差值所以要用到某一列去减序列函数所以将第一步得到的结果作为表t1然后以t1表作为基表去求差值用total-lag函数完成运行。with t1 as (select year(s.dt) year,round(sum(amount)/10000,2) total from saledetail st join sale s on st.orderids.orderid group by year(s.dt) ) select year, round(total - lag(total) over(order by year),2) diff from t1;4、年度订单金额前10位年度、订单号、订单金额、排名思路连续值求解问题我们可以先求出年度订单的总金额也就是用年和订单id来分组用sum求和。然后作为基表去查询排名函数dense_rank求得排好序的数据表。最后再作为基表添加where过滤条件得到结果。with t1 as( select year(dt) dt,s.orderid orderid,sum(amount) total from saledetail sd join sale s on sd.orderids.orderid group by year(dt),s.orderid ), t2 as( select dt,orderid,total, dense_rank() over(partition by dt order by total desc) rank from t1 ) select dt,orderid,total,rank from t2 where rank10部分结果5、季度订单金额前10位年度、季度、订单id、订单金额、排名思路比上一题增加了季度季度在日期表中有所以这里要三表连接然后再使用排名函数dense_rank()按照年和季度分区按照金额降序排序最后在嵌套一层select语句即可完成。with tmp as ( select C.year, C.quat, A.orderid, round(sum(B.amount), 2) amount from sale A join saledetail B on A.orderidB.orderid join dimdate C on A.dtC.dt group by C.year, C.quat, A.orderid ) select year, quat, orderid, amount, rank from ( select year, quat, orderid, amount, dense_rank() over (partition by year, quat order by amount desc) rank from tmp ) tmp1 where rank 10;这里展示部分结果6.求所有交易日中订单金额最高的前10位思路TopN问题首先根据日期和订单id分组使用sum函数求出总金额然后使用dense_rank()排名函数根据总金额降序排序最后使用where条件选出相应的数据。with tmp as ( select A.dt, A.orderid, round(sum(B.amount), 2) amount from sale A join saledetail B on A.orderidB.orderid group by A.dt, A.orderid ) select dt, orderid, amount, rank from ( select dt, orderid, amount, dense_rank() over(order by amount desc) rank from tmp ) tmp1 where rank 10;7、每年度销售额最大的交易日思路首先按年分组使用sum函数求和然后再使用max函数挑出每年最大的交易时间。with tmp as ( select A.dt, round(sum(B.amount), 2) amount from sale A join saledetail B on A.orderidB.orderid group by A.dt ) select year(dt) year, max(amount) dayamount from tmp group by year(dt); 8、年度最畅销的商品(即每年销售金额最大的商品) 思路现根据年和商品分组使用sum求出总金额然后使用排名函数dense_rank()排名按照年分区按照总金额降序排序。因为题目要最畅销商品所以where条件要rank1。with tmp as ( select year(B.dt) year, goods, round(sum(amount),2) amount from saledetail A join sale B on A.orderidB.orderid group by year(B.dt), goods ) select year, goods, amount from (select year, goods, amount, dense_rank() over (partition by year order by amount desc) rank from tmp) tmp1 where rank 1;写在结尾这里归纳了常见的sql面试题需要大家记忆连续值求解和TopN问题当然也需要不断理解相应的业务来变化sql代码。
http://www.pierceye.com/news/673364/

相关文章:

  • 今天重大新闻优化设计答案五年级下册
  • 网站建设市场报价建站哪家好 discuz
  • 没后台的网站怎么做优化中国联通网站备案
  • 金融产品做网站推广网站访问者
  • 安徽省工程建设安全协会网站广州网站设计皆赞乐云践新
  • 成都建设网上商城平台公司深圳网站建设推广优化seo
  • 数据服务网站开发国家重点建设裤网站
  • 做兼职上哪个网站wordpress相册灯箱弹窗
  • 微信编辑器做网站网页设计专业开设院校
  • 网站建设衤金手指谷哥十四wordpress电商主题数据库
  • 网站开发要会英语吗app手机网站设计
  • 青岛海诚互联做网站好吗typo wordpress theme
  • 有关大学生做兼职的网站有哪些网站规划建设方案模板
  • 深圳珠宝网站建设分析报告做电影网站 需要进那些群
  • 哪些网站可以做翻译兼职成都编程培训机构排名前十
  • 网站html有趣代码做暖暖视频网站大全
  • 最新淘宝客网站程序长春网站运做思路
  • 一个网站的建设需要什么手续phpcms旅游网站模板下载
  • 昆明做网站费用做网站的一些话术
  • sae 网站备案信息汽车配件加工网
  • 做游戏网站要备案吗群晖做网站需要备案吗
  • 网站制作教程为什么语音转文字里面没有海南的
  • 怎么让别人看到自己做的网站地信的网站建设
  • 网站主体注销泰安新闻视频在线
  • 怀柔网站建设优化seo瓯北网站制作公司
  • 福田住房和建设局网站官网做自己点击网站
  • 临沂市建设局网站简介佛山建网站
  • 哪种类型的网站比较难做阿里云宝塔安装wordpress
  • 购物网站起名网站建设皿金手指排名
  • 河北省住房和城市建设厅网站怎么做cpa网站