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

上海注册公司在哪个网站wordpress积分站内搜索

上海注册公司在哪个网站,wordpress积分站内搜索,怎么制作网页推广,wordpress加密目录注#xff1a;参考文章#xff1a; SQL条件判断语句嵌套window子句的应用【易错点】--HiveSql面试题25_sql剁成嵌套判断-CSDN博客文章浏览阅读920次#xff0c;点赞4次#xff0c;收藏4次。0 需求分析需求#xff1a;表如下user_idgood_namegoods_typerk1hadoop1011hive1…注参考文章 SQL条件判断语句嵌套window子句的应用【易错点】--HiveSql面试题25_sql剁成嵌套判断-CSDN博客文章浏览阅读920次点赞4次收藏4次。0 需求分析需求表如下user_idgood_namegoods_typerk1hadoop1011hive1221sqoop2631hbase1041spark1351flink2661kafka1471oozie108以上数据._sql剁成嵌套判断https://blog.csdn.net/godlovedaniel/article/details/118220935 0 需求 基于下表的表结构及数据求出每个用户每次搜索非广告类型的商品位置排序。假设字段goods_type为26代表该商品类型是广告。 想达到的效果 1 数据加载 --建表 create table window_goods_test ( user_id int, --用户id goods_name string, --商品名称 goods_type int, --标识每个商品的类型比如广告非广告 rk int --这次搜索下商品的位置比如第一个广告商品就是1后面的依次234... )ROW FORMAT DELIMITED FIELDS TERMINATED BY \t;-- 加载数据 load data local inpath /opt/module/hive_data/window_goods_test.txt into table window_goods_test ; vim window_goods_test.txt 1    hadoop    10    1 1    hive    12    2 1    sqoop    26    3 1    hbase    10    4 1    spark    13    5 1    flink    26    6 1    kafka    14    7 1    oozie    10    8 2 数据分析 代码分析最开始的思路先过滤掉非广告的商品再重新排序 select user_id,goods_name,goods_type,rk,if(goods_type ! 26,row_number() over (partition by user_id order by rk),null) as rk1 from window_goods_test;输出结果如下显然没有达到预期的结果。 出错原因在于对窗口函数的执行原理及顺序不了解可以通过执行计划来判断SQL执行顺序。 explain select user_id,goods_name,goods_type,rk,if(goods_type ! 26,row_number() over (partition by user_id order by rk),null) as rk1 from window_goods_test; 具体执行步骤如下 1扫描表 2按照user_id分组 3按照user_id和rk进行升序排序 4执行row_number()函数进行分析 5使用if进行判断 由执行计划可以得出 if函数是在row_number()函数之后执行的 上述sql可以拆解为三部分进行执行 step1:扫描表获取select的结果集 select user_id,goods_name,goods_type,rk from window_goods_test; step2执行窗口函数 select user_id,goods_name,goods_type,rk,row_number() over (partition by user_id order by rk) as rk1 from window_goods_test; step3基于step2结果集执行 if判断 因此正确代码如下 方式一union all 拆解成两段逻辑 -- 第一段逻辑先限制goods_type ! 26再排序 selectuser_id,goods_name,goods_type,rk,row_number() over (partition by user_id order by rk) as rk1 from window_goods_test where goods_type ! 26 union all -- 第二段逻辑将goods_type 26的记录的rk1 直接记为null selectuser_id,goods_name,goods_type,rk,null as rk1 from window_goods_test where goods_type 26 order by rk; 上述代码的缺点window_goods_test表需要扫描两次显然不是最优解。 优化的解题思路为 方式二 step1:  partition by分组中先进行 if 语句过滤如果goods_type!26则取对应的user_id 进行分组如果goods_type26 则置为随机数rand(), 再按照随机数分组 ps: 这里采用随机数是考虑到万一 goods_type26的记录数很多通过rand()随机分组可以将key值打散避免数据倾斜 selectuser_id,goods_name,goods_type,rk,row_number() over (partition byif(goods_type ! 26, user_id, rand())order by rk) rk1 from window_goods_test step2在step1的外侧利用 if函数进一步判断 selectuser_id,goods_name,goods_type,rk,if(goods_type ! 26,row_number() over (partition by if(goods_type ! 26, user_id, rand()) order by rk),null) rk1 from window_goods_test 3 小结 通过本案例得出的结论 case when或if语句中嵌套窗口函数时条件判断语句的执行顺序是在窗口函数之后的窗口函数partition by 子句中是允许嵌套条件判断语句的
http://www.hkea.cn/news/14590475/

相关文章:

  • 娄底网站推广营销策划公司名称大全
  • 做物流的网站有哪些功能搭wordpress用什么
  • 深圳手机移动网站开发单位宣传册设计样本
  • 文件备案网站建设方案新手网页制作
  • 大庆加油app老版本无锡优化网站排名
  • 个人网站注册平台钱滁州商业网站建设
  • 邀约网站怎么做请柬深圳十大广告公司
  • 江苏新宁建设集团网站泰安新浪乐居房产网
  • 电子商务网站首页做品牌网站的
  • 用html怎么做网站尾部wordpress文本组件使用方法
  • gif网站素材专业微信网站建设多少钱
  • 国内食品行业网站开发wordpress图片缩放
  • 自己做的网站上出现乱码怎么修改商城微发布官网
  • 在重庆_那里可以做诚信网站认证广播电台网站建设方案
  • 阿里云主机做网站学会建网站如何做网络营销
  • 贵州 跨境电商网站建设赵县住房和城乡建设局网站首页
  • 南京 推广 网站建设为什么这么多人嫌弃top域名
  • 网站维护合同范本wordpress 分类信息主题
  • 加强本单位政务网站建设电商推广渠道有哪些
  • 怎么使用域名访问网站施工企业会计科目
  • 网站改版业务创意设计ppt
  • 广州 环保 凡人网站建设旅游网站建设成本核算
  • 创网站需要什么清远做网站哪家好
  • 网站加载速度慢wordpress 内存使用教程
  • 布吉网站建设哪家公司便宜点网站网络推广方式方法
  • 淘宝 网站建设教程视频黄岩网站开发
  • 网站建设和维护怎么学群晖根目录wordpress
  • 长春关键词优化排名2016网站优化
  • 设计logo网站免费奇米有网站可以接设计的单子做吗
  • 网站怎么做一盘优化排名如何做网上销售网站