首页
学习
活动
专区
圈层
工具
发布

用SQL进行用户留存率计算

今天我们来分享一个常见案例,用SQL来计算用户留存率。 目录: 1. 案例数据 2. 思路分析 3. 完整代码 1. 案例数据 这里我们一共两份日志数据,分别是用户账号创建的日志以及用户登录的日志。...账号创建日志 账号创建日志 用户登录日志 登录日志 以上案例数据 后台回复 955 可以在SQL文件夹里data领取 2....注意:我这里用的MYSQL环境 基于上述的理解,我们大概就有了以下思路: 考虑到用户每天登录的次数不一定只有一次,为了方面后续的数据处理,可以先对登录数据按照日期和用户id进行去重DISTINCT处理...3日留存 , count((CASE WHEN (day_diff = 7) THEN role_id END)) 7日留存 FROM temp_1 GROUP BY create_date 用第...后续我们会陆续进行SQL与Python的常见数据处理计算案例分享,敬请期待!

1.8K20

Mybatis_总结_03_用_动态SQL

如果没有传入“title”,那么所有处于“ACTIVE”状态的BLOG都会返回;反之若传入了“title”,那么就会对“title”一列进行模糊查找并返回 BLOG 结果(细心的读者可能会发现,“title...如果希望通过“title”和“author”两个参数进行可选搜索该怎么办呢?首先,改变语句的名称让它更具实际意义;然后只要加入另一个条件即可。...这个问题不能简单地用条件句式来解决,如果你也曾经被迫这样写过,那么你很可能从此以后都不会再写出这种语句了。 2. where MyBatis 有一个简单的处理,这在 90% 的情况下都会有用。...(译者注:因为用的是“if”元素,若最后一个“if”没有匹配上而前面的匹配上,SQL 语句的最后就会有一个逗号遗留) 若你对 set 元素等价的自定义 trim 元素的代码感兴趣,那这就是它的真面目:...五、foreach 动态 SQL 的另外一个常用的操作需求是对一个集合进行遍历,通常是在构建 IN 条件语句的时候。

1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    用SQL语句进行数据库查询(复杂查询)

    前言 个人主页: :✨✨✨初阶牛✨✨✨ 推荐专栏: c语言初阶 个人信条: 知行合一 本篇简介:>:上一篇学习了如何使用SQL语句进行简单的数据查询,本篇记录一些在简单查询的基础上稍微复杂一点的查询...Grade from student s , course c, sc where s.sno=sc.sno and c.cno=sc.cno (4)查询选修了“C语言程序设计”的学生的学号与姓名 –a.用内连接查询...inner join sc on student.Sno=sc.Sno inner join course on sc.Cno =course.cno and Cname='C语言程序设计' –b.用连接查询...sname from student,sc,course where student .Sno=sc.Sno and sc.Cno =course.cno and Cname='C语言程序设计' –c.用子查询...='张虹' –b.用子查询 语句: select Sno,sname,Home_addr from student where classno=(select classno from student

    2.3K50

    用SQL语句进行数据库查询(简单查询)

    前言 个人主页: :✨✨✨初阶牛✨✨✨ 推荐专栏: c语言初阶 个人信条: 知行合一 本篇简介:>: 讲解使用SQL语句进行简单的数据查询、条件查询等....目录 前言 简单查询 1.查询数据表中的全部信息 2.查询数据表中的部分属性 3.用中文显示需要查询的属性....使用聚合函数 count函数 使用Group子句进行查询 简单查询 上一篇我们介绍了如何用SQL语句创建表、修改表以及向表中插入数据.现在我们可以通过SQL语句对表中的数据按照自己的需求来进行查询.....查询数据表中的部分属性 查询全体学生的学号(Sno)和姓名(sname)(查询表中的部分属性) select Sno,sname--表示需要查找的属性 from Student--属性所属表格 3.用中文显示需要查询的属性...结果2: 用例: 查询全体学生的姓名及其年龄 我们的表中并没有年龄这一属性,但是我们有学生的出生日期,这样我们可以通过计算(当前日期-出生日期)得到年龄. select Sname as 姓名 ,

    3.7K20

    SQL注入总结

    通常,一些防注入语句不允许单引号的出现,那么可以使用一下语句绕过: union select 1,load_file(0x272F6574632F70617373776427),3,4,5 # 对路径进行...写入一句话木马 如果数据的权限是dba,且知道网站路径的话,那么我们就可以用这个语句来写一句话木马进去: asp木马: http://www.xxx.cn/xxx/xxx.aspx?...所以特意用加号代替。 3.“select select * from admin”可以执行吗?倘若不可以请说明。 不可以执行,在使用select双层的时候要把第二个括起来,否则无效。...6.SQL注入和SQL盲注有何差别?...7.什么是引发SQL注入漏洞的主要原因? Web应用未对用户提供的数据进行充分审查和未对输出进行编码是产生问题的主要原因。 8.什么是堆叠查询(stacked query)?

    2.3K51

    SQL学习之SQL注入总结

    Sql注入定义: 就是通过把sql命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行的sql命令的目的。...order by 用于对结果集进行排序。...schemaname.tablename的结果取之此表(其中包含table_schema,表中对应的库名信息,table_nama表字段对应的表名,columns_name字段对应的字段名) 找到注入点后,我们用order...sql盲注 在不知道数据库具体返回值的情况下对数据库中的内容进行猜解,实施sql注入,一般分为基于布尔和基于时间类型的盲注。...过滤关键字符 and ——&& or  —— || 空格被过滤 可以使用”%09   %0A   %0C   %0D    %0B”替代,也可以用or和and语句来构造到达闭合语句的效果。

    2.3K40

    sql注入总结笔记

    渗透千万条,安全第一条 WARNING: 授权渗透,备份数据后渗透; 在不确定危害的前提下,避免在update、insert、delete种类的注入点进行注入; 避免使用工具进行上述注入; 避免使用sqlmap...的–dump功能; 什么是SQLi 前端构造的SQL语句片段拼接到后台SQL语句中,后台缺乏正确识别和过滤,造成与其外的数据库查询结果。...if(var1,var2,var3) var1:条件 var2:条件为真时返回的值 var3:条件为假时返回的值 sleep(var) 暂停执行var秒,var可以用小数 SQL基础语句...GBK编码就是用两个字节来表示中文区字符的一个编码标准。...()函数、like关键字绕过 空格->+,/**/ limit 0,1用limit 0 offset 1绕过 substr用mid、substring绕过 sleep用benchmark绕过 大小写绕过

    1.9K42

    hive sql系列(总结)

    hive sql系列(总结)介绍: hive sql系列主打sql,通过案例,从实现到分析,帮助大家找到写sql的快乐 hive sql系列目录: hive sql系列(一):找出所有科目成绩都大于某一学科平均成绩的学生...(重点:开窗、子查询、需要条件过滤的在子查询中先过滤) 3、hive sql系列(三)是一个级联求和的典型例子,意思是当月和累计在一起的意思,以此类推,相似的场景都可以用hive sql系列(三)的方式做...(八)(网友的企业实战)(重点)和hive sql(九) 7、基于开窗排序之上还有取数,那就需要用到lag函数,甚至取数之后还要进行运算,无论多复杂的需求,都可以参考第5点,这让我想当《算法》里面说到的一句话...,功能是啥,返回值是啥;又比如排序函数三种的用法等等(重点:这部分的总结下次分享出来,总结中) 9、order by和开窗函数里面的order by重用之痛,可以参考hive sql系列(十)(重点:类似这种会慢慢总结分享出来...,如果没有经验,会很浪费测试sql的时间) 10、这次就总结这些了,下次再见。。。

    2.1K40

    SQL 性能优化 总结

    SQL 性能优化 总结 (1)选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表...(15)用EXISTS替代IN、用NOTEXISTS 替代NOT IN: 在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接.在这种情况下,使用EXISTS(或 NOTEXISTS...(28) 用UNION-ALL替换UNION ( 如果有可能的话): 当SQL 语句需要UNION两个查询结果集合时,这两个结果集合会以UNION-ALL 的方式被 合并, 然后在输出最终结果前进行排序...为了避免ORACLE 对你的SQL 进行隐式的类型转换,最好把类型转换用显式表现出来. 注意当字符和数值比较时, ORACLE会优先转换数值类型到字符类型。...通常,带有UNION, MINUS , INTERSECT的SQL语句都可以用其他方式重写.

    2.4K20

    SQL注入笔记总结

    在不断实践中经常遇到如下注入类型,总结了一些笔记 注入类型总结 注入类型 条件 关键 union注入 显示查询结果 order by , union select 布尔注入 只返回False或者True...执行多条查询语句 使用分号分隔多条查询语句 Cookie注入 在请求头中cookie参数异常 可用 sqlmap -r cook.txt - p 参数 base64注入 有base64编码过的参数 将payload进行...如seleselectct替换为select 编码绕过 未对编码过滤,可进行url、ascil等常用的编码payload 内联注释绕过 /!...and/ 反注入函数总结 函数名称 作用 addslashes($string) 用反斜线引用字符串中的特殊字符' " \ mysql_escape_string($string) 用反斜杠转义字符串中的特殊字符...,用于mysql_query()查询 mysql_real_escape_string($string) 转义SQL语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集,需要保证当前是连接状态才能用该函数

    91832

    Sql注入总结学习

    select user())a)b)) exp() id=1 and exp(~(select * from(select user())a)) Procedure_Analyse 配合报错注入即可/也可以用注入点在...原理 在SQL 中, 分号(;)是用来表示一条sql 语句的结束。试想一下我们在; 结束一个 sql语句后继续构造下一条语句, 会不会一起执行?因此这个想法也就造就了堆叠注入。...虽然我们前面提到了堆叠查询可以执行任意的sql 语句, 但是这种注入方式并不是十分的完美的。...成功删除 tips: 并非所有环境都支持堆叠注入,比如Oracle 查询时通常只返回一个结果,导致后面的SQL语句可能无法回显到页面上 base64注入 对参数进行base64编码,再发送请求。...空格绕过 用括号,+等绕过 等价函数绕过 hex()、bin()=ascii() concat_ws()=group_concat() mid()、substr()=substring()http参数污染

    1.4K20
    领券