精华内容
下载资源
问答
  • 当天 ‘${zdt.format(“yyyy-MM-dd”)}’ 昨天 ‘${zdt.addDay(-1).format(‘yyyy-MM-dd’)}’ 前30天 ‘${zdt.addDay(-30).format(‘yyyy-MM-dd’)}’ 本周-上周四至本周三 between date_sub(’${zdt.format(“yyyy...

    当天

    '${zdt.format("yyyy-MM-dd")}'
    

    昨天

    '${zdt.addDay(-1).format('yyyy-MM-dd')}'
    

    前30天

    '${zdt.addDay(-30).format('yyyy-MM-dd')}'
    

    本周-上周四至本周三 “u”-星期几

    between
    date_sub('${zdt.format("yyyy-MM-dd")}','${zdt.format("u")}'+3)
    and
    date_sub('${zdt.format("yyyy-MM-dd")}','${zdt.format("u")}'-3)
    

    上周-上上周四至上周三

    between 
    date_sub('${zdt.format("yyyy-MM-dd")}','${zdt.format("u")}'+10)
    and 
    date_sub('${zdt.format("yyyy-MM-dd")}','${zdt.format("u")}'+4)
    

    去年同期-同期周四至同期周三

    between 
    date_sub('${zdt.format("yyyy-MM-dd")}','${zdt.format("u")}'+367)
    and 
    date_sub('${zdt.format("yyyy-MM-dd")}','${zdt.format("u")}'+361)
    

    上个月-上个月第一天至最后一天

    between
    add_months(trunc('${zdt.format("yyyy-MM-dd")}','MM'),-1) 
    and 
    date_add(trunc('${zdt.format("yyyy-MM-dd")}','MM'),-1)
    

    上上个月-上上个月第一天至上上个月最后一天

    between
     add_months(trunc('${zdt.format("yyyy-MM-dd")}','MM'),-2)
    and
     date_add(add_months(trunc('${zdt.format("yyyy-MM-dd")}','MM'),-1),-1)
    

    去年同期-同期上个月第一天至同期上个月最后一天

    between 
    add_months(trunc('${zdt.format("yyyy-MM-dd")}','MM'),-13)
    and 
    date_add(add_months(trunc('${zdt.format("yyyy-MM-dd")}','MM'),-12),-1)
    

    其他日期

    currentmontfirstday='${zdt.add(2,0).format("yyyy-MM")}-01'
    
    lastmontfirstday='${zdt.add(2,-1).format("yyyy-MM-dd")}'
    
    year=${zdt.format("yyyy")}
    
    before2month1stday=${zdt.add(2,-2).format("yyyy-MM")}-01
    
    last2year=${zdt.add(1,-2).format("yyyy")}-01-01
    
    Last_Year=${zdt.add(1,-1).format("yyyy-MM-dd")}
    
    before3month1stday=${zdt.add(2,-3).format("yyyy-MM")}-01
    
    CurrentDateTime=${zdt.format("yyyy-MM-dd HH:mm:ss.SSS")}
    
    LastYearFirstDay=${zdt.add(1,-1).format("yyyy")}-01-01
    
    lastyear=${zdt.add(1,-1).format("yyyy")}-01-01
    
    after61_date=${zdt.addDay(61).format("yyyy-MM-dd")}
    
    nextyear=${zdt.add(1,1).format("yyyy")}-01-01
    
    LastMonthFirstDay=${zdt.add(2,-1).format("yyyy-MM")}-01
    
    LastYearbefore2month1stday=${zdt.add(2,-14).format("yyyy-MM")}-01
    
    LastYearCurrentMonth1stday=${zdt.add(1,-1).format("yyyy-MM")}-01
    
    before1month1stday=${zdt.add(2,-1).format("yyyy-MM")}-01
    
    CurrentMonth1stday=${zdt.add(2,0).format("yyyy-MM")}-01
    
    CurrentMonth=${zdt.add(2,0).format("yyyy-MM")}
    
    LastYearbefore1month1stday=${zdt.add(2,-13).format("yyyy-MM")}-01
    

    当年第一天~当月第一天

    between trunc('${zdt.format("yyyy-MM-dd")}','YY')
    and date_add(trunc('${zdt.format("yyyy-MM-dd")}','MM'),-1)
    

    区分星级几

    if(date_format(date,"u") between '1' and '5','平日','周末')
    

    固定每月2号

    '${zdt.format("yyyy-MM-02")}'
    

    自然月

    between '${zdt.addDay(-1).format("yyyy-MM")}-01' and '${zdt.format("yyyy-MM-dd")}'
    

    自然季

    between trunc(add_months('${zdt.addDay(-1).format("yyyy-MM-dd")}', -(month('${zdt.addDay(-1).format("yyyy-MM-dd")}')-1)%3), 'MM') and '${zdt.format("yyyy-MM-dd")}'
    
    展开全文
  • sql同比环比 简单示例

    千次阅读 2019-12-12 17:46:58
    SQL同比-简单示例 同比:一般情况下是今年第n月与去年第n月比 创建一个简单的登录活动记录表 drop table if EXISTS logintime; create table logintime ( logincode VARCHAR(10), usercode VARCHAR(10...

    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';
    

    同比示例今年双12
    同比示例去年双12.
    4.同比操作

    -- 同比操作
    SELECT
    	t.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 ) t
    	LEFT 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';
    

    环比结果1
    如上图这个“王俊名”同志 今年登录9次
    环比结果2

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

    -- 环比操作
    SELECT
    	t.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 ) t
    	LEFT 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同比环比(记录SQL

    千次阅读 2020-03-20 15:39:38
    最近在做BI所以sql任务比较多,好久没碰过sql了,记录一下。 表数据 --环比 select c.DepartName as 部门, convert(varchar(10), c.SalesDate, 23) as 对比年月, c.Sales as 本月销售总量, d.Sales as 上月销售...

    最近在做BI所以sql任务比较多,好久没碰过sql了,记录一下。

    表数据

    查询结果

    --环比
    select c.DepartName as 部门, convert(varchar(10), c.SalesDate, 23) as 对比年月, c.Sales as 本月销售总量, d.Sales as 上月销售总量, case when d.Sales is null or d.Sales=0 then '无穷大' else cast(cast((isnull(c.Sales, 0)-isnull(d.Sales,0))*100/isnull(d.Sales, 0) as decimal(10,2)) as varchar(50))+'%' end as 环比 from SalesDetail c left join
    (select a.DepartName as DepartName, a.Sales as Sales, a.SalesDate as lsSalesDate, b.SalesDate as SalesDate from SalesDetail a join SalesDetail b on a.SalesDate=DateAdd(month, -1, b.SalesDate) and a.DepartName=b.DepartName) d
    on c.SalesDate=d.SalesDate and c.DepartName=d.DepartName
    --同比
    select c.DepartName as 部门, convert(varchar(10), c.SalesDate, 23) as 对比年月, c.Sales as 本月销售总量, d.Sales as 去年同期销售总量, case when d.Sales is null or d.Sales=0 then '无穷大' else cast(cast((isnull(c.Sales, 0)-isnull(d.Sales,0))*100/isnull(d.Sales, 0) as decimal(10,2)) as varchar(50))+'%' end as 同比 from SalesDetail c left join
    (select a.DepartName as DepartName, a.Sales as Sales, a.SalesDate as lsSalesDate, b.SalesDate as SalesDate from SalesDetail a join SalesDetail b on a.SalesDate=DateAdd(year, -1, b.SalesDate) and a.DepartName=b.DepartName) d
    on c.SalesDate=d.SalesDate and c.DepartName=d.DepartName

     

    select c.DepartName as 部门, 
    convert(varchar(10), c.SalesDate, 23) as 对比年月,
    c.Sales as 本月销售总量,
    d.Sales as 去年同期销售总量, 
    case when d.Sales is null or d.Sales=0 then '无穷大' 
    else cast(cast((isnull(c.Sales, 0)-isnull(d.Sales,0))*100/isnull(d.Sales, 0) as decimal(10,2)) as varchar(50))+'%' end as 同比,
    e.Sales as 上月销售总量,
    case when e.Sales is null or e.Sales=0 then '无穷大'
     else cast(cast((isnull(c.Sales, 0)-isnull(e.Sales,0))*100/isnull(e.Sales, 0) as decimal(10,2)) as varchar(50))+'%' end as 环比
    from SalesDetail c 
    left join
    (select a.DepartName as DepartName, a.Sales as Sales, a.SalesDate as lsSalesDate, b.SalesDate as SalesDate from SalesDetail a join SalesDetail b on a.SalesDate=DateAdd(year, -1, b.SalesDate) and a.DepartName=b.DepartName) d
    on c.SalesDate=d.SalesDate and c.DepartName=d.DepartName
    left join
    (select a.DepartName as DepartName, a.Sales as Sales, a.SalesDate as lsSalesDate, b.SalesDate as SalesDate from SalesDetail a join SalesDetail b on a.SalesDate=DateAdd(month, -1, b.SalesDate) and a.DepartName=b.DepartName) e
    on c.SalesDate=e.SalesDate and c.DepartName=e.DepartName;

    展开全文
  • SQL-环比同比

    2020-03-08 18:01:18
    https://blog.csdn.net/Eric_data/article/details/101287510?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

    https://blog.csdn.net/Eric_data/article/details/101287510?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

    展开全文
  • sql语句查询同比增量、同比 同比增量 SELECT a.customer, a.month, ( a.x - b.y ) 同比增量 FROM ( SELECT customer, year, month, SUM(number) x FROM syxy_sales WHERE year = 2020 GROUP BY month,customer ) a ...
  • SQL 同比环比增长率计算

    千次阅读 2019-11-08 14:14:08
    环比计算比较简单    SELECT o.* FROM (SELECT o.*,   (total / LAG(total) OVER (ORDER BY month) - 1) as growth  FROM [KS_DataBase3.0_QJ].[dbo].[KS_MonthVbt] o  ) o WHERE [Month] ...
  • sql语句下的同比,环比操作

    千次阅读 多人点赞 2020-07-01 00:44:26
    sql语句下的同比,环比操作 题目:有两个表 表一:销售明细 表二:产品明细 需求:查询2020年,每月的销售额,以及同比环比,并按照年月进行升序排序 建数据库 建表 插入数据 偷个懒,这些语句就先省略了 给看个截图...
  • SQL 同比、环比计算公式及实例演示

    千次阅读 2021-04-01 23:48:21
    环比数据计算公式:环比:一般是指报告期水平与前一时期水平之比,此处指本月数据与上月数据(或者本日数据与上日数据) 计算方式:环比增长速度=(本期数-上期数)÷上期数×100% CREATE TABLE SalesDetail( ID...
  • 关于SQL求同比、环比

    2020-09-22 09:49:21
    同比和环比的意思 同比 一般情况下是今年第n月与去年第n月比。同比发展速度主要是为了消除季节变动的影响,用以说明本期发展水平与去年同期发展水平对比而达到的相对发展速度。如,本期2月比去年2月,本期6月比...
  • 环比 同比
  • 结果出来了数据也没有问题,但是这样暴露一个问题就是每次操作的时候都进行两次rownumber的生成,这里的排序消耗性能过大,然后关联,我们知道关联越多执行sql的效率就越低,所以我们要是能有方法找到这个数据的上一...
  • mysql:一条sql语句统计环比、同比

    万次阅读 2019-01-07 11:10:33
    环比类似 思路分析:表a首先统计出当月的入园人数、销售额,表b统计出同期的入园人数、销售额(在a的基础上减去一年,可),将两个表进行左连接。 select CASE WHEN b.TOTAL_COUNT is NULL OR b.TOTAL_COUNT=...
  • SQL 求同比 环比

    万次阅读 2017-02-26 11:24:13
    or d.Sales=0 then '无穷大' else cast(cast((isnull(c.Sales, 0)-isnull(d.Sales,0))*100/isnull(d.Sales, 0) as decimal(10,2)) as varchar(50))+'%' end as 环比 from SalesDetail c left join (select a....
  • SQL计算日环比、周同比

    千次阅读 2019-11-10 20:43:45
    计算日环比、周同比 范例表格如下: 这是面试问到的一个问题,回来学习之后了解可以用这个函数: 代码如下: select date,gmv,(gmv-gmv_1)/gmv_1,(gmv-gmv_7)/gmv_7 from (select date,gmv, lead(gmv,1) over...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,154
精华内容 861
关键字:

sql环比