hive sql 常用场景一

create table default.score (

userid string,

monthid string,

score  int

);

/*

insert into default.score values('001','01',70);

insert into default.score values('001','02',50);

insert into default.score values('001','03',60);

insert into default.score values('001','04',90);

insert into default.score values('001','05',70);

*/

--累计值写法一

select a.userid,a.monthid,a.score,sum(b.score)

from default.score a  join default.score  b  on a.userid = b.userid

where    a.monthid >= b.monthid

group by a.userid,a.monthid,a.score

order by a.userid,a.monthid;

--累计值写法二

select

userid,monthid,score,

sum(score) over(partition by userid order by monthid)

from default.score ;

--排名三种函数进行对比

--row_number

select userid

      ,monthid

      ,score

      ,row_number() over(order by score) as dense_number

from default.score;

--rank:

select userid

      ,monthid

      ,score

      ,rank() over(order by score) as rank

from default.score;

--dense_number

select userid

      ,monthid

      ,score

      ,dense_rank() over( order by score) as dense_number

from default.score;

--grouping sets

select userid

      ,monthid

      ,sum(score)

from default.score

group by  userid,monthid

grouping sets ( (userid , monthid) ,(userid), (monthid));

--时间转换

select from_unixtime(unix_timestamp('20180905','yyyymmdd'),'yyyy-mm-dd');

select from_unixtime(unix_timestamp('2018-09-05','yyyy-mm-dd'),'yyyymmdd');

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 说明:以下五十个语句都按照测试数据进行过测试,最好每次只单独运行一个语句。 问题及描述: --1.学生表 Stud...
    lijun_m阅读 1,321评论 0 1
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,504评论 0 13
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,438评论 0 10
  • ORACLE自学教程 --create tabletestone ( id number, --序号usernam...
    落叶寂聊阅读 1,121评论 0 0
  • 50个常用的sql语句Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname...
    哈哈海阅读 1,250评论 0 7