010.Hive必刷50题--46-50题

    科技2022-08-04  106

    –46、查询各学生的年龄(周岁): – 按照出生日期来算,当前月日 < 出生年月的月日则,年龄减一

    方法一:

    SELECT s_id,s_name,s_birth,s_sex, IF(MONTH(CURRENT_DATE)>MONTH(s_birth),YEAR(CURRENT_DATE)-YEAR(s_birth),YEAR(CURRENT_DATE)-YEAR(s_birth)-1) FROM student GROUP BY s_id,s_name,s_birth,s_sex

    方法二:

    SELECT s_id,s_name,s_birth,s_sex, CASE WHEN MONTH(CURRENT_DATE)>MONTH(s_birth) THEN YEAR(CURRENT_DATE)-YEAR(s_birth) ELSE YEAR(CURRENT_DATE)-YEAR(s_birth)-1 END FROM student GROUP BY s_id,s_name,s_birth,s_sex

    – 47、查询本周过生日的学生:

     weekofyear函数是计算出当前日期所在周数,返回日期用数字表示的范围是从1到53的日历周。

    SELECT WEEKOFYEAR('2020-01-06'); =2

    SELECT s_id,s_name,s_birth,s_sex FROM student WHERE WEEKOFYEAR(CURRENT_DATE)=WEEKOFYEAR(s_birth)

    – 48、查询下周过生日的学生:

    SELECT s_id,s_name,s_birth,s_sex FROM student WHERE WEEKOFYEAR(CURRENT_DATE)+1=WEEKOFYEAR(s_birth)

    – 49、查询本月过生日的学生:

    SELECT s_id,s_name,s_birth,s_sex FROM student WHERE MONTH(CURRENT_DATE)=MONTH(s_birth)

    – 50、查询12月份过生日的学生:

    SELECT s_id,s_name,s_birth,s_sex FROM student WHERE MONTH(s_birth)=12

     

     

    后续部分参见:

    00.Hive必刷50题--建表,插入数据

    01.Hive必刷50题--1-5题

    02.Hive必刷50题--6-10题

    03.Hive必刷50题--11-15题

    04.Hive必刷50题--16-20题

    05.Hive必刷50题--21-25题

    06.Hive必刷50题--26-30题

    07.Hive必刷50题--31-35题

    08.Hive必刷50题--36-40题

    09.Hive必刷50题--41-45题

    010.Hive必刷50题--46-50题

    Processed: 0.016, SQL: 8