SQL同比-简单示例

同比:一般情况下是今年第n月与去年第n月比

  1. 创建一个简单的登录活动记录表
drop table if EXISTS logintime;
create table logintime (
logincode VARCHAR(10),
usercode VARCHAR(10),
username VARCHAR(10),
logintime TIMESTAMP
);
  1. 插入数据
insert into logintime values('acd001','aqc985654','王俊名','2019-12-12 8:01:12');
insert into logintime values('acd001','aqc985654','王俊名','2019-12-12 10:01:04');
insert into logintime values('acd001','aqc985654','王俊名','2019-12-12 12:05:28');
insert into logintime values('acd001','aqc985654','王俊名','2019-12-12 13:03:36');
insert into logintime values('acd001','aqc985654','王俊名','2019-12-12 15:07:57');
insert into logintime values('acd001','aqc985654','王俊名','2019-12-12 18:01:22');
insert into logintime values('acd001','aqc985654','王俊名','2019-12-12 20:10:42');
insert into logintime values('acd001','aqc985654','王俊名','2018-12-12 10:23:45');
insert into logintime values('acd001','aqc985654','王俊名','2018-12-12 12:11:23');
insert into logintime values('acd001','aqc985654','王俊名','2018-12-12 15:14:33');
insert into logintime values('acd001','aqc985654','王俊名','2018-12-12 20:35:01');
  1. 查询 看一看数据什么样
select * from logintime;

.

-- 今年双12
select count(0) logincountnow from logintime where date(logintime)= '2019-12-12';
-- 去年双12
select count(0) logincountlastyear from logintime where date(logintime)= '2018-12-12';


.
4.同比操作

-- 同比操作
SELECTt.username,t.logincountnow,t2.logincountlastyear,( t.logincountnow / t2.logincountlastyear ) - 1 AS rat -- 这个列就是你要的同比增长值
FROM-- 主数据( SELECT t.username, count( 0 ) logincountnow FROM logintime t WHERE date(logintime)= '2019-12-12' GROUP BY t.username ) tLEFT JOIN -- 对比数据( SELECT t.username, count( 0 ) logincountlastyear FROM logintime t WHERE date(logintime)= '2018-12-12' GROUP BY t.username ) t2 ON t.username = t2.username;

简单来讲就是拿出数据表的同时间长度内相对位置点的一致的数据进行对比。这个相对的点时间单位可以是时分秒,也可以是日月年。
.

SQL环比-简单示例

环比:表示连续2个统计周期(比如连续两月)内的量的变化比。

简单讲:就是两个连续的时间长度内数据量的变化
还是在之前的表里加入一些数据

insert into logintime values('acd001','aqc985654','王俊名','2019-07-07 18:01:22');
insert into logintime values('acd001','aqc985654','王俊名','2019-07-08 20:10:42');
insert into logintime values('acd001','aqc985654','王俊名','2018-01-01 10:23:45');
insert into logintime values('acd001','aqc985654','王俊名','2018-03-18 12:11:23');
insert into logintime values('acd001','aqc985654','王俊名','2018-07-07 15:14:33');
insert into logintime values('acd001','aqc985654','王俊名','2018-11-11 20:35:01');

执行一下代码查看一下

select count(0) logincountnow from logintime where year(logintime) = '2019';
select count(0) logincountlastyear from logintime where year(logintime) = '2018';


如上图这个“王俊名”同志 今年登录9次

如上图这个“王俊名”同志 去年登录8次

-- 环比操作
SELECTt.username,t.logincountnow,t2.logincountlastyear,( t.logincountnow / t2.logincountlastyear ) - 1 AS rat -- 这个列就是你要的环比增长值
FROM-- 主数据( SELECT t.username, count( 0 ) logincountnow FROM logintime t WHERE year(logintime)= '2019' GROUP BY t.username ) tLEFT JOIN -- 对比数据( SELECT t.username, count( 0 ) logincountlastyear FROM logintime t WHERE year(logintime)= '2018' GROUP BY t.username ) t2 ON t.username = t2.username;

.
环比概念示例图:
.
同比、环比这两张图是不是很像有点相似?对比一下哪里不一样,哈哈

sql同比环比 简单示例相关推荐

  1. php 自带sql防注入函数,php 防Sql注入函数的简单示例

    这篇文章主要为大家详细介绍了php 防Sql注入函数的简单示例,具有一定的参考价值,可以用来参考一下. 传入用户提交的参数时使用这段代码提供的函数先对参数进行处理,然后传入sql语句, 用: mysq ...

  2. php 登陆 sql语句,PHP 连接MySQL数据库的SQL语句的简单示例

    这篇文章主要为大家详细介绍了PHP 连接MySQL数据库的SQL语句的简单示例,具有一定的参考价值,可以用来参考一下. 首先用phpmyadmin进入建立数据库user 再建个三段的表admin 再别 ...

  3. sql while循环_SQL WHILE循环的简单示例

    sql while循环 SQL WHILE loop provides us with the advantage to execute the SQL statement(s) repeatedly ...

  4. 使用 SQL 实现同比环比分析

    场景描述 在做数据分析时,经常会需要展示同比和环比的数据,可以通过 SQL 来完成同比和环比的计算,再配合数据可视化工具进行展示,每个月都会自动展示当月数据与上月的对比(环比),以及当月数据与去年同期 ...

  5. 同比环比日期计算、本周一、本周日、上周一、上周日(mysql)

    目录 1 所需基础日期查询实现 2 根据业务表实际查询操作 2.1 简单查询 2.2 查询优化: 2.3  在mybatis中 查询,关联业务信息实现 1 所需基础日期查询实现 (1)在计算同比环比时 ...

  6. php分页预览函数,PHP分页函数的简单示例

    这篇文章主要为大家详细介绍了PHP分页函数的简单示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编小韵来看看吧!准备数据: 新建一个数据库 test 执行下面的 ...

  7. java读取ACCESS数据库的简单示例

    java读取ACCESS数据库的简单示例  虽然简单,对初学者来说,如果没有一段可以成功执行的代码供参考,还真难调试  先用ACCESS建一个数据库 DB1.MDB,里面有一表"table1 ...

  8. 总结SQL Server窗口函数的简单使用

    前言:我一直十分喜欢使用SQL Server2005/2008的窗口函数,排名函数ROW_NUMBER()尤甚.今天晚上我在查看SQL Server开发的相关文档,整理收藏夹发现了两篇收藏已久的好文, ...

  9. php mysql生成excel文件,PHP导出MySQL数据到Excel文件简单示例

    这篇文章主要为大家详细介绍了PHP导出MySQL数据到Excel文件简单示例,具有一定的参考价值,可以用来参考一下. 对phpPHP导出MySQL数据到Excel文件简单示例感兴趣的小伙伴,下面一起跟 ...

  10. mysql表变量临时表_sql server 临时表详细讲解及简单示例

    一.概述 在sql server里临时表存储在TempDB库中,TempDB是一个系统数据库,它只有Simple恢复模式,也是最小日志记录操作.主要用于存放局部临时表,全局临时表,表变量,都是基于临时 ...

最新文章

  1. Spring bean 实现生命周期的三种解决方案
  2. Linux里设置环境变量的方法(export PATH)
  3. python实现var模型_copula函数及其Var计算的Python实现
  4. lnmp—MemCache的作用
  5. 部署java项目_企业最看重什么样的Java人才?
  6. C/C++语言里的near和far是什么意思?
  7. 3d打印英语文献_【玩手工学英语】形状主题:The 3D Shapes Song
  8. cloud_config学习_1
  9. 敏捷开发用户故事系列之七:用户故事与MVC
  10. 如何在macOS Monterey 中开启对焦模式?
  11. centos7 elasticsearch 安装启动问题
  12. JavaScript中 new 一个对象过程详解
  13. VS2010旗舰版安装步骤
  14. MATLAB的bertool绘制误码率理论值与仿真值对比曲线
  15. Hadoop相关概念
  16. 2021WSB-day2-4: Raffaele教授演示利用OpenCV和Python实现一个指纹识别系统 (含代码) part6
  17. 决定重新安装windows2016datacenter 系统。原先的俄罗斯版没虚拟机功能
  18. 荣耀X10 Max配置怎么样?今天来聊一聊
  19. 深度学习和自然语言处理的应用
  20. Linux进程间通信(下)

热门文章

  1. 毫秒为单位产生随机数
  2. javaScript深度克隆
  3. 如何判断微信付款码和支付宝付款码
  4. nova7系列,nova的深耕之役
  5. C# WPF MVVM 实战 – 2.2
  6. 程序在单片机里是如何运行的?
  7. 黑客用恶意软件Dropper攻击了Pale Moon存档服务器
  8. Firefox Pale Moon此连接是不受信任的、无效的安全证书解决办法
  9. 三峡大学校赛----十万桃花图(线性基)
  10. pdf根据目录生成书签