首页 > 数据库 >每日一题(SQL)

每日一题(SQL)

时间:2025-01-06 21:31:28浏览次数:10  
标签:test1 23 每日 userId SQL date 2017 u01

要求使用SQL统计出每个用户的累积访问次数,如下表所示 

用户id月份小计累积
u012017-011111
u012017-021223
u022017-011212
u032017-0188
u042017-0133

实现效果如图所示:

visitDatevisitCount
u012017/1/215
u022017/1/236
u032017/1/228
u042017/1/203
u012017/1/236
u012017/2/218
U022017/1/236
U012017/2/224

数据准备:

CREATE TABLE test_sql.test1 (userId string, visitDate string, visitCount INT )
ROW format delimited FIELDS TERMINATED BY "\t";
INSERT INTO TABLE test_sql.test1 VALUES
( 'u01', '2017/1/21', 5 ), ( 'u02', '2017/1/23', 6 ), ( 'u03', '2017/1/22', 8 ), 
( 'u04', '2017/1/20', 3 ), ( 'u01', '2017/1/23', 6 ), ( 'u01', '2017/2/21', 8 ), 
( 'u02', '2017/1/23', 6 ), ( 'u01', '2017/2/22', 4 );

 需求实现:

with t as (select userid,
                  substring(visitDate, 1, 6) as month,
                  sum(visitCount)            as date_count
           from test1
           group by userid, substring(visitDate, 1, 6))
select t.userid,
       date_format(replace(concat(t.month, '/17'), '/', '-'), 'yyyy-MM'),
       date_count,
       sum(date_count) over (partition by userId order by userId rows between unbounded preceding and current row)  from t;

标签:test1,23,每日,userId,SQL,date,2017,u01
From: https://blog.csdn.net/qq_51050225/article/details/144972594

相关文章

  • 基于SpringBoot的中国陕西民俗网的设计与实现(源码+SQL脚本+LW+部署讲解等)
    专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。主要内容:免费功能设计、开题报告、任务书、中......
  • 【PostgreSQL数据库-Tried to send an out-of-range integer as a 2-byte value: 5356
    业务侧反馈,因为某业务积攒的单量太大,导致在数据批量入库的时候,产生如下报错,主要报错信息是:请求参数的整体大小不能超过2byte。Triedtosendanout-of-rangeintegerasa2-bytevalue:53568这个报错初步看起来,有个“out-of-rangeinteger”,可能大家第一个想到的可能......
  • SQLServer使用STUFF-for xml path实现结果行列转置.220507
    源数据:场景1:查出用户的爱好,并进行行列转置selectcname,stuff((select','+f.favorfromtb_favorfwheref.userid=b.useridFORXMLPath('')),1,1,'')favorfromtb_userb这里使用了SQLServer2005版本以后加入的stuff以及forxmlpath:FORXMLPath('�......
  • EBS 开发常用SQL
    1.查看当前系统定义了那些值是中文的段值。SELECT*FROMfnd_flex_value_setsffvsWHEREffvs.flex_value_set_nameLIKE'CUX%'ANDEXISTS(SELECT1FROMfnd_flex_values_vlffvWHEREffvs.flex_value_set_id=ffv.flex_value_set_id......
  • 查询Oracle正在执行和执行过的SQL语句
    --查询Oracle正在执行的sql语句及执行该语句的用户SELECTb.sidoracleID,      b.username登录Oracle用户名,      b.serial#,      spid操作系统ID,      paddr,      sql_text正在执行的SQL,      b.machine计算机名FROMv$pro......
  • MySql 常用语句
    1.关键字一览关键字说明WHEREORDERBY排序LIMIT限制返回的行数2.查询查询所有数据(所有行和所有列)SELECT*FROMusers查询所有行的部分列SELECTusername,emailFROMusers查询特定行SELECT*FROMusersWHEREid=13.排序通过ord......
  • MySQL事务管理
    目录1.如果CURD不加控制,会有什么问题?2.什么是事务?3.事务提交的方式4.事务常见操作方式5.事务的隔离级别5.1如何理解隔离性1以及隔离级别划分5.2查看与设置隔离性5.3四种隔离级别的演示5.4一致性(Consistency)解读6.如何理解隔离性26.1读-写6.1.13个记录隐藏......
  • SQL语言做加减运算时将某项的null值转换为0
    在SQL语言中,很多时候,在表项中会遇到null值,null值有三大特点:1)NULL值不参加统计;2)NULL值不进入计算表达式;3)不能与其它值进行比较。因此,在运算中要将null值有时候转换成其他值,这里提供一种加减运算中转换为0的方法。如:在算工资的时候,总工资=基础工资+奖金,但有的员工......
  • SQLServer单表无缝转换到MySQL.220605
    场景:SQLServer单表结构,无缝转换到MySQL方法:1.Navicat-右键需要导出的数据表-逆向表到模型2.弹出来的模型窗口里,选择转换模型为 默认MySQL8.0确认3.新弹出的模型窗口 -选择 导出SQL 即可。......
  • Mysql8忽略大小写的解决方案.240105
    ​一、删除服务器数据文件由于8.0没法设置参数后重启(失败),所以必须删掉老库,重新启动才行。切记:;本步骤要删掉老库所有资料,如果是数据库当前有用,请做好备份,再进行操作。systemctlstopmysqldcd/var/lib/mysql默认数据在这里rm-rf*二、添加配置,大小写不敏感vim/etc/m......