就这短短一个小问,本人汗颜,花了近两个小时才搞明白,具体步骤如下,望指正!
1、表内容

    首先考虑什么是下周:现在可以得到的是现在的时间,current_data(),在通过dayofweek可以知道现在是周几。
    确定星期几之后,就要弄清楚从今天到下周一差了几天,经过测试可以发现用9减去星期数在加上当前日期就可以得到下周一的日期,然后在用date_add(),就可以计算出下周日的日期
    最后就是排查学生生日的月份和天数在这两个日期之间的人,本人就是一直在这里卡壳了,首先我直接想取出月份和天数,这个是可以用正则regexp_extract,也可以用日期格式化输出date_format(),只去‘M-d’。当然这里还比较容易想,但最关键的就是用后者取出来的数据不能直接用month和day单独取出对应位置上的数,所有这之后我又想到是不是可以把月份和天数截取出来,再转为Int类型或者字符串类型直接进行比较:collect_list(cast(regexp_replace(birthday,’-’,’’) as int)),这样处理之后的确将月份和天数拼接成了一个字符串或者转化为了一个数值,但是由于一些不可知的原因,转换之后的数不能通过常规方法,即大于小于或者between,and比较,最终也只能放弃。
    好在脑子没有一直糊涂下去,最后我发现,其实并不需要把月份或天数取出来或者进行拼接等诸如此类的操作,仅仅只需要,在日期状态下,直接用month和day取出对应月份和天数,在和birthday中的月份,天数进行比较即可。(需要注意的就是,下周也可能出现跨月份的情况,需要详情考虑)
具体代码如下:

select
name,birthday
from
(
select
next_monday,date_add(next_monday,6) next_sunday
from
(
select date_add(current_date(),9-dayofweek(current_date())) as next_monday
)A
)B,student
where
month(birthday)>=month(next_monday)
and
month(birthday)<=month(next_sunday)
and
(
day(birthday)>=day(next_monday)
or
day(birthday)<=day(next_sunday)
)
;

结果:

SQL+HIVE 题目:查询下周过生日的学生相关推荐

  1. MySql查询本周或下周过生日的人

    这几题我想了很久,因此记录一下. 做题思路,先将学生的生日年份统一成当前时间的年份,这样就可以直接用相差的天数判断是否本周或者下周过生日了 首先还是来建表加数据吧 -- 创建表格 create tab ...

  2. 31、查询 1990 年出生的学生名单

    对于这类问题,首先是建表.导入数据,然后是写sql语句,难到不难,就是题目量有点大 create database if not exists school; use school; drop tab ...

  3. 用python打印学生名单_Python 之 MySql 每日一练 231——查询1990年出生的学生名单...

    ** 一.表名和字段** –1. 学生表 student (s_id,s_name,s_birth,s_sex) –学生编号,学生姓名,出生年月,学生性别 –2. 课程表 course (c_id,c ...

  4. sql 两个表字段不一样合并查询_数据分析进阶--SQL多表查询

    下午写完了上一篇文章,晚上就开始做牛客的SQL题啦,然后发现少少的十题就用到了好几次多表连接,case在实际分析过程中也非常常用,所以我打算单独把多表查询和case拉出来写一篇文章. 文章目录: 表的 ...

  5. hive的条件查询语句_[一起学Hive]之九-Hive的查询语句SELECT

    关键字:Hive SELECT.ORDER BY.SORT BY.DISTRIBUTE BY.CLUSTER BY.Hive子查询.Hive虚拟列 八.Hive的查询语句SELECT 在所有的数据库系 ...

  6. ORACLE---Unit04: SQL(高级查询)

    ---(重点复习:子查询.分页查询.decode) --- SQL(高级查询) --- 子查询 --- 子查询是嵌套在其它SQL语句当中的,目的是为嵌套的SQL提供数据,以便其执行. ---查看谁的工 ...

  7. impala查询数据与hive的查询数据比对(数据的校验)

    impala查询数据与hive的查询数据比对 先在cdh的hue中分别用impala和hive的查询数据对比 将impala的查询语句写入到shell脚本中 a=(`impala-shell -q ' ...

  8. 几道经典的SQL笔试题目(有答案)

    几道经典的SQL笔试题目(有答案) (1)表名:购物信息 购物人      商品名称     数量 A            甲          2 B            乙           ...

  9. SQL:简单查询语句操作实例

    一.SQL Server简单查询语句 背景知识: 一.查询:SQL中最基本.最常用的操作,用来对数据库进行查询 二.表达式: select 属性列 from 表 where 筛选条件 group by ...

最新文章

  1. 深入理解SpringBoot之装配条件
  2. WINCE屏蔽NK的串口输出信息
  3. 《深入浅出数据分析》样章下载
  4. 决用 Anaconda 完美解 Python2 和 python3 共存问题
  5. matlab2007教学,MATLABR2007 matlab基础教程 - 下载 - 搜珍网
  6. Ribbon界面开发总结
  7. java wmic_强大的命令行工具wmic
  8. 合并果子问题(贪心算法)
  9. html设计思路,网页设计思路7个方法
  10. 清理docker产生的垃圾文件
  11. mysql administrator教程_MYSQL administrator 使用
  12. CSS实现的带头像的彩色垂直菜单源码
  13. python excel数据分析画直方图 饼状图_Excel数据可视化应用(直方图、折线图、饼状图)...
  14. OneNav一为主题魔改教程(五):点赞后自动加入到首页“我的导航”--洞五洞洞幺
  15. 小企业智能路由器的应用 (用智能路由器推广你的烤肉饭)
  16. 第一章(简述数据清洗的基本流程)
  17. 【论文笔记】—图像分割—U-Net—2015-MICCAI
  18. docker GraphDriver
  19. javaFx学习之分页控件Pagination
  20. opencv-python 矫正电容

热门文章

  1. 电脑开机各种蓝屏错误代码,U盘重装系统彻底解决
  2. matlab 超拉丁,拉丁超立方抽样 专注matlab代码下载 Downma.com 当码网
  3. 教育邮箱怎么申请?国际教育电子邮箱
  4. 微信接口php oa,你必须了解OA与微信结合的几种方式
  5. 生成模型(四):扩散模型(Diffusion Models)
  6. 寒假社会实践完整版内容,一套流程
  7. 正确处理Ordered Broadcasts
  8. Java内存溢出与栈溢出
  9. 无法安装战网,提示007D
  10. signature=4209f9d53642a2c1cdf0e4a92ba622eb,HIERBA GUINEA (Panicum maximum Jacq.)