先根据以下代码来创建表MonthlyOrders并导入一定的数据
CREATE TABLE MonthlyOrders(
ordermonth DATE,
ordernum INT UNSIGNED,
PRIMARY KEY (ordermonth)
);
INSERT INTO MonthlyOrders SELECT '2010-02-01',23;
INSERT INTO MonthlyOrders SELECT '2010-03-01',26;
INSERT INTO MonthlyOrders SELECT '2010-04-01',24;
INSERT INTO MonthlyOrders SELECT '2010-05-01',27;
INSERT INTO MonthlyOrders SELECT '2010-06-01',26;
INSERT INTO MonthlyOrders SELECT '2010-07-01',32;
INSERT INTO MonthlyOrders SELECT '2010-08-01',34;
INSERT INTO MonthlyOrders SELECT '2010-09-01',30;
INSERT INTO MonthlyOrders SELECT '2010-10-01',31;
INSERT INTO MonthlyOrders SELECT '2010-11-01',32;
INSERT INTO MonthlyOrders SELECT '2010-12-01',33;
INSERT INTO MonthlyOrders SELECT '2011-01-01',31;
INSERT INTO MonthlyOrders SELECT '2011-02-01',34;
INSERT INTO MonthlyOrders SELECT '2011-03-01',34;
INSERT INTO MonthlyOrders SELECT '2011-04-01',38;
INSERT INTO MonthlyOrders SELECT '2011-05-01',39;
INSERT INTO MonthlyOrders SELECT '2011-06-01',35;
INSERT INTO MonthlyOrders SELECT '2011-07-01',49;
INSERT INTO MonthlyOrders SELECT '2011-08-01',56;
INSERT INTO MonthlyOrders SELECT '2011-09-01',55;
INSERT INTO MonthlyOrders SELECT '2011-10-01',74;
INSERT INTO MonthlyOrders SELECT '2011-11-01',75;
INSERT INTO MonthlyOrders SELECT '2011-12-01',14;
滑动订单问题是指为每个月返回上一年度(季度或月度)的滑动订单数,即每个月份N,返回N-11到月份N的订单总数。这里,假设月份序列中不存在间断。
执行下面的SQL查询实现每个月返回上一年度的滑动订单总数
SELECT
DATE_FORMAT(a.ordermonth, '%Y%m') AS frommonth,
DATE_FORMAT(b.ordermonth, '%Y%m') AS tomonth,
SUM(c.ordernum) AS orders
FROM monthlyorders a
INNER JOIN monthlyorders b
ON DATE_ADD(a.ordermonth, INTERVAL 11 MONTH) = b.ordermonth
INNER JOIN monthlyorders c
ON c.ordermonth BETWEEN a.ordermonth AND b.ordermonth
GROUP BY a.ordermonth,b.ordermonth;
运行结果如下图
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAANUAAADvCAIAAADqwwYfAAARbklEQVR4nO2dwW7buBaG+VSF4Sfoa1y30CJP0W3dFPCuzxAM0kkxgB+gG69vkmZj4M50PHfmXnQxbWonbeqAs5BEUSJFURYPqXN8fmjh0pSsP/xLWvLnY/HT+S+88ZZqEz+d/yJZrEQ6xvzd3t6mPoXwQmcqP2HOHxGhM3W8+fvy5UvqUwgvdKbyE+b8ERE6U5w/UkJnyiN/y0wIIYTIlvFOq6n1YjpdrIMe8vPnz0GP5y0AL0pRTYUwkp+wI3/LTID9tTqlHAKM2d9//+16xeCC9KJkNwWkEEbyEy7y9+PH/v7bQ2378Hoinl80GqNtH15PJq+v9QeBtv3+8a///d/uN+gLRfDSbQp6dIad8N399yJ/Dz/2d/ff9W0mNE1O58+EEM8v7r/fXZ9Oitbyn5Pns4kQQswububFg/Z2+xHy46s+RX8hxOTZc+PZQdt+//jfP/8y/Vav+OrG12NqL52mem+tdhpDL8Tk9KrWMplfN/tfvZrUOhsn7Mpffiz1GuUf692sfHz1aiKevbu7Pp3kr33xXKgHk9Ortnb7EcrjF31aXl09CzFU6hX9Pab2Ejp/Tjvas6Wjd7M8l6pF7399OimfvXhWdmvN38OP3d232nZ1OpmcXuoPzMfi2c9mt/xBZ7t5BOuLtr36odv+8XHzx589/Pp4TOSl21SvzdOObl9fJBv9797N8sb2E97dfeP8cf4G5K9hwWLKnsJm/r4//Nju7mvb5asnk1eX+oPd/XZ3MRNi9vP9dnd/OZ+I2YWlW/6grd1xhEZn8ext49VrZ3Lgtt8/fvz9D7vf/BX9Pab20m2q3+a0s7uYicnLy/LZuv1mZnb328tXs/n1dne/3V2/nBQ7Nk54u7sv8vft+8PX7V1tu5w/eTL/t/5AtZdvoN9au+UP2todR6g/fjsTQogns5n12YO3/f7xt48bi1/1ii+vfD2m9uJjqt/msLO9+/q2uCitjFT9hdAHfXv3dXvxL/XMyyvrCX/d3rXnj+gWbKjGtKEzZeTv28Pt190xbPv9/tfffifmF52p/IRvv+6K/N1/+/7ldnsM24/9/j+/fiTmF52p/IS/3G6L/H1gsVJIff52RHp4eEh9CuGFzlR+wsfIXyXjXyCFzlQn/0JW6IbKR+hMcf5ICZ0pzh8poTPF+SMldKb88vdpMX0hxAshXojp+5x4XWZFSwPLX2ZvFBNr9jFaLEeOJNdQHejXbPHfK4zi528u5NN8y2rtq0w+ncpNvc/K2N0vfzdZdpM/WmYvpotPcnku8pb1+6k4L/626/dT8UKI8i9r9rHsZRw5mlxDdZBfs8Vzr4CKnb+lnJf/sc6m8qy0tMrkSSZPpnIj5dm07LOsEqnUd/1dL95MF5+WmT6B6X/K6p9mn/a9qiP7nUUI+Q2Vv1+zpc9egZRw/Z2X09tmIU8WUq6L/M21aW9uTIE982cmqfa45a9fPG7fSwIOSZu8hqqHX7Olz16BlCR/Z9NqbS3CJ2v5U/OiPkfm6pU/tUQGz1/sxVd6DVUvv2bLseQvV56zPIvVNpWbtTzRWg6e//SIhF1/E4RPdg9VX79my3Gtv6usei8oZTX/uVr6XP/WImJ9Z1307HX9YRw5mrquf3v7NVt67BVIkfO3WVTrqb7OSmlJ29m0XJo1eeWvuGSr3ZKw3FnQu2U30uf+i+3IkeQYqkP9+vwFLHvFMQWiZbWw1iY/qeWv7GOGT/L9Z2JCZ4rzR0roTHH+SAmdKc4fKaEzVcvfZxYruiTPf2SEzhTnj5TQmeL8kRI6U5w/UkJnivNHSuhM+eUPjn+uWkTtE1J4uYYKjn8G5r3j58/CPxsfuKHgn8fEn8Lxz8C8d+z8mfzzspkzxcVsFk1GX46JfzaIVGD5DRUM/1wdeYABmxKuvznbvMqahGnFPB/OXymB8M/rxRtzXQOX11AB8c/WHUMoSf50/nkumkRMQP4ejn+WQOuRQx5DBcY/g5lNO/+dreuznZCrcPmD45/LFzgPz8M51DVUcPwz4P+0hPnL3+fpCcvfEYZYf8H45/X7TBvj0cx/cPwzMO8dOX8m/7zKtO8fle8Ih15/wPHP8iaDg4HdcgwVHP8MzXvHv/41+Wf1FSQ9msPuv1AUulu1PkJnivNHSuhMcf5ICZ0pzh8poTNVy19gsJXF8pDk+Y+M0Jni/JESOlOcP1JCZ4rzR0roTHH+SAmdKb/8AfLP5RPnUCVp2+QaKsD6z7C8d/z8dfPPWv2/M2OA/fIHxz+XPafn2Yjqn8bgn0nwpx78c1XzdJz1n9fvp9P365HW3wXkn0F474Trbxv/XOVvhPxzET4JxQM75DVUIPwzIO+dJH9u/llvPHT9LRScf85HQtsiRtBjqOD4Z/3gIZV2/rPyz4r/O5sO+v4RMP88uvkPsv5zflAA3jth/uz887K25h5a/x6u/rNtxzjquv4F4Z+hee/I+fPhn+dqIS5bdHnlD5B/VhpT/gDrPwPz3vGvf7v55wD3XygK3a1aH6EzxfkjJXSmOH+khM4U54+U0Jmq5S8w2MpieUjy/EdG6Exx/kgJnSnOHymhM8X5IyV0pjh/pITOlF/+4tR/Hlf9KyD+uXwChveOn78m/2x+2qa1HPj7v5D8c+yyu0quoYLjn8t2IN47dv4M/tlCOy9rIOBB/Eul4PzzKPNXKTz/DMp7J1x/c/LKTTsfyl8pha//XK2/MX/8XCbin6F57yT50/ln6aCdB/P3XP9ZDssfOO+ddv7L+b822tlcfOWI+OdR/f6HlOD8M6H5L9cqk/NFK+1sDZ9Mzz+rd/qfFtPx/P4HXP1nx44hFDl/Jv9soZ3X8qQlfDI9/6zd6TiG+s+VSOTPwj8b9182i6qPeQuG7z+TEjpTnD9SQmeK80dK6Exx/kgJnala/gKDrSyWhyTPf2SEzhTnj5TQmeL8kRI6U5w/UkJnivNHSuhM+eUPtP5zWZJnRPxVnPrP+OtfSVv957ZfW11lB9ffheOfbzKgSqCdcg0VIP8My9vGzp+Nfy5a6tWeV5k8yYbX3w3NPy/PozJXuvyGKjj/TCt/muZltb9VvUVKuVnIk8UY6z/ri9GI+JdK4es/w/LeSfLXqP+sUKt8RizCJ8fIP9dniPHwf4W4/nMPFcnT+Kun5TdCdP7q6bS2l3/+IPjnRlX4Y+Kfafz+hyZF3hcyZ7vD5z8w/nl5Lqrv44xn/oPjn4F578j5M/lnpbOp8W3fg/MHWf9ZfSUn9oWIY6gA+Wdg3jv+9W+Tf162ftU8xPUHIaG7VesjdKY4f6SEzhTnj5TQmeL8kRI6U7X8BQZbWSwPSZ7/yAidKc4fKaEzxfkjJXSmOH+khM4U54+U0Jnyyx8Y/9z4pKtZJApSrqECrf8MyXunyp/ONpv8s8lIK/nlD7D+c6WKRYgi11DB8c/AvHeS/Olss6JgNosybQYjravv+hu8/rO243j4l0qB+Wdo3jt+/hpsc8U/22iD+WG/f14pfP3n8t9xJz+Zhn8G570j589km638vTRqRCv1yh9Y/efok59Mwz+D896R82eyzSct+VMtB6+/gPWf409+Mg3/DM57J7v+9Vt/m4x0cv65PHiCr2B2Xf+C8M/QvHfy/JnXHw5GWo6Ef44/+clk9Z9hee/k+ZPm/ReTkdbE959JCZ0pzh8poTPF+SMldKY4f6SEzlQtf4HBVhbLQ5LnPzJCZ4rzR0roTHH+SAmdKc4fKaEzxfkjJXSm/PIHV/+5OvKI6g/B8c/QvHeq/FX8s1b/T5UgaqsILVPzzxoDcpMF/zF6t1xDBVj/uRIE9ZMkf7XazhrtnNMGFiJaU9/1Nyz/rOUP5veYHfIbquD1n7VuJPgXR23nnLZ3E1k98xeef1Yr1JjWX6Xw9Z/Lf8Mgj5Hz56rt3EVE5+qVv/D8c7lCrRdvon75Taat/wyGPEbOn8k/qwgq1C9U/gD459q+R1T/GY73Tnb9W5//dM40xPoLxT8vM/U1nFF9/w2u/rOEdZo+f2t5UoecA1x/APLPo7z/As0/w/HeyfO3WdRW5Pzd4eD7LxSF7latj9CZ4vyREjpTnD9SQmeK80dK6EzV8hcYbGWxPCR5/iMjdKY4f6SEzhTnj5TQmeL8kRI6U5w/UkJnyi9/cPxz63HA5RoquPrPwJ83psqfXv+52WIjopX88gfIP5f8wVHwz+C8d5L81fhns8UgonX1XX/D8s8uQhNafkMVln8G573j58/knzuJaF098xeYf9YZu7Hxf1JKCP4ZlveOnD+Tf/YhonX1yh9A/WftnVbkt4AeQxWef4bmvSPnz+Sf5x5EtHnCies/21uA1TVUAPwzPO+d7Pq3a7azhk+m5p+rk41fhbfr+heCfwbnvceYP4OI1uWVP0D+GfLHqNxyDBUg/0z0/osjf1YiWonvP5MSOlOcP1JCZ4rzR0roTHH+SAmdqVr+AoOtLJaHJM9/ZITOFOePlNCZ4vyREjpTnD9SQmeK80dK6Ez55S8Y/+zfB1yuoYLjn4H9pspfjX9e1j5qa3z+1iiB5Ze/QPyzZ584cg0VIP8My3snyV+DdrbWuap6Dvv8dwj/3KcPvPyGKiz/DM57x89fg3ZeZa2oSw7CDKm/O5B/7tMHXl5DFZh/Bue9I+fPpJ3n2lLb+LVzc/KTcfnnPn3g5TFUAPWfgXnvyPkz+ecTvdquPtvZJj8Zl3/u0wdeXUMFWP/Z3hJCya5/bdXu9W8bWSc/GZl/7tEHXl3Xv2D1n6WE472T56/K2bp9LtTklb9w/LNXnzhyDBUg/wzMeyfPn9QWZTX5nU3tk5/k+8/EhM4U54+U0Jni/JESOlOcP1JCZ6qWv8BgK4vlIcnzHxmhM8X5IyV0pjh/pITOFOePlNCZ4vyREjpTfvkD5J/bWsDlGqpg/LPZQo1/1oErnfyb14uvDfv9VTD+2doSR66hCsQ/my3QvEWS/DVSVQD3Zf4C/P60prD8c3sLvPyGagj/bLaA82ZjyJ+UNRxhrlMww+rvBuef21vg5TVUg/hns4Ugfz+3Fvaz5s8W1l75C84/t7fAy2OoBvLPZgvB/CnVKuwC5A+Cf25vgVfXUA3nn80WguuvUu23FQKvv2D8c2sLvLqufwPwz2YLtesP9dsy5rc9Al5/QPLPlpY4cgxVOP45Nu8dO3/ab2upb7vpXzjPGwfff6EodLdqfYTOFOePlNCZ4vyREjpTnD9SQmeqlr/AYCuL5SHJ8x8ZoTPF+SMldKY4f6SEzhTnj5TQmeL8kRI6U375g+OfLUeOJNdQAfLPbS1hFD9/Jv/sajmQP4Xjn40jR5NrqMD4Z2tLQCXJ38rdsqw+Gq4xMlLKsfDP1ZH9ziKE/IYqLP/c3hJIY8yf86me+QPin9saIeU1VIH55/aWQEq4/ir+2UpE50UBB/IvYPxz9MVXpuGf21sCKeH1x1w011afFv/8wfHPCcIn0/DP7S2BlDB/5ns7s0WxqEr+178w/LNx5Gjquv4F4Z9bWwIpdv5M/tlo2SyqFB44/8Hxz7YjR5JjqCD5Z1jeO3b+TP7ZbFk2cWjzhPn+MxGhM8X5IyV0pjh/pITOFOePlNCZquUvMNjKYnlI8vxHRuhMcf5ICZ0pzh8poTPF+SMldKY4f6SEzpRf/oLxwP57gcs1VHD8MzDvHT9//rTzKquK8ir55S8QD+y5Vxy5hgqOfwbmvZPkz4d2XmXyJBtef3cQD9yXiIaV31DB8M/VkQ85c4fS58/21GYhTxax6z+bLT2JaGB5DRUQ/9zWOFgJ19822rkInwyQv4E8MLr8gfHPYMhtwuuPNto5z2K1TWt9/PM3nAfGtf7C8c+AvHfC/HXTzpHrP5stPfaCV9f1Lwz/DMx7x85fL9r54PyF44G99oojx1DB8c/QvHfs/PWinQNcfxASulu1PkJnivNHSuhMcf5ICZ0pzh8poTNVy19gsJXF8pA8zvmPNR5x/lgp9Q+QYPiKfvICHwAAAABJRU5ErkJggg==" alt="" />
该查询首先对MonthlyOrders表进行自连接。a表用做下边界(frommonth),b表用做上边界(tomonth)。连接的条件为:
DATE_ADD(a.ordermonth, INTERVAL 11 MONTH) = b.ordermonth。
例如,a表中的2010年2月将匹配2011年1月。
完成自连接之后,需要对订单进行统计。这时需要再进行一次自连接,得到范围内每个月的订单数量。因此连接的条件为
c.ordermonth BETWEEN a.ordermonth AND b.ordermonth。
基于上述方法,我们还可以统计每个季度订单的情况,以此作为和同比增长的比较依据。
SELECT
DATE_FORMAT(a.ordermonth, '%Y%m') AS frommonth,
DATE_FORMAT(b.ordermonth, '%Y%m') AS tomonth,
SUM(c.ordernum) AS orders
FROM monthlyorders a
INNER JOIN monthlyorders b
ON DATE_ADD(a.ordermonth, INTERVAL 2 MONTH) = b.ordermonth
AND MONTH(a.ordermonth) % 3 = 1
INNER JOIN monthlyorders c
ON c.ordermonth BETWEEN a.ordermonth AND b.ordermonth
GROUP BY a.ordermonth,b.ordermonth;
运行结果如下图
aaarticlea/png;base64,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" alt="" />
- mysql优化---订单查询优化:视图优化+索引创建
订单的表结构采用了垂直分表的策略,将订单相关的不同模块的字段维护在不同表中 在订单处理这个页面,需要查询各种维度, 因此为了方便查询创建了v_sale_order视图(老版本) drop view v ...
- 记一次mysql千万订单汇总查询优化
公司订单系统每日订单量庞大,有很多表数据超千万.公司SQL优化这块做的很不好,可以说是没有做,所以导致查询很慢. 正题 节选某个功能中的一句SQL EXPLAIN 查看执行计划 EXPLAIN + S ...
- mysql滑动聚合
滑动聚合是按顺序对滑动窗口范围内的数据进行聚合的操作.下累积聚合不同,滑动聚合并不是统计开始计算的位置到当前位置的数据. 这里以统计最近三个月中员工第月订单情况为例来介绍滑动聚合. 滑动聚合和累积聚合 ...
- mysql优化---订单查询优化(1):视图优化+索引创建
订单的表结构采用了垂直分表的策略,将订单相关的不同模块的字段维护在不同表中 在订单处理这个页面,需要查询各种维度, 因此为了方便查询创建了v_sale_order视图(老版本) drop view v ...
- mysql优化---订单查询优化:异步分页处理
订单分页查询: 老的代码是顺序执行查询数据和计算总记录数,但是如果条件复杂的话(比如关联子表)查询的时间要超过20s种 public static PagedList<Map<String ...
- MySQL 单笔订单满6个及以上产品且金额>=300赠送优惠券_20161103
活动内容: 单笔订单满6个及以上产品(帽子.浴巾除外),金额满赠300元,即赠送300-10元(除帽子.浴巾外)优惠券一张.需求数据:满足条件的用户ID活动时间:11.2-11.5(4天)活动规则:① ...
- mysql优化---订单查询优化(2):异步分页处理
订单分页查询: 老的代码是顺序执行查询数据和计算总记录数,但是如果条件复杂的话(比如关联子表)查询的时间要超过20s种 public static PagedList<Map<String ...
- 数据库集群 MySQL主从复制
MySQL主从复制 本节内容我们联系使用MySQL的主从复制功能配置Master和Slave节点,验证数据MySQL的数据同步功能. 因为要使用多个MySQL数据库,所以不建议在电脑上安装多个MySQ ...
- BG.Hive - part2
1. 将mysql的订单数据导入hive的分区表(桶.倾斜)[partition,bucket,skew] a> 在Hive中新建分区表 CREATE TABLE IF NOT EXISTS H ...
随机推荐
- Liang-Barsky直线段裁剪算法
Liang-Barsky直线段裁剪算法 梁友栋与Barsky提出的裁剪算法以直线的参数方程为基础,把判断直线段与窗口边界求交的 二维裁剪问题转化为求解一组不等式,确定直线段参数的一维裁剪问题.设起点为 ...
- Eclipse配置python开发环境
1.打开Eclipse,找到Help菜单栏,进入Install New Software…选项. 点击work with:输入框的旁边点击Add…,Name可以随便是什么,我输入的是PyDev,Loc ...
- android6.0以上权限动态申请,有视频链接可以看效果。
android6.0以上某些权限需要动态申请,虽然现在大多的手机系统版本在6.0,但是升级到6.0及以上是迟早的事,所以如何能够更好的控制动态申请权限时能有好的提示用户,及给用户带去更好的体验,是需要 ...
- 图像之王ImageMagick
这是我目前能想到的名字.很久前某图像群看到有人推荐过,试了一下确实厉害,支持的格式之多让人叹服. http://www.imagemagick.org/script/formats.php 一般用法 ...
- appium 1.6.x版本去除安装Unlock、Setting
(appium目录不知道可以查看appium运行日志) 修改目录/usr/local/lib/node_modules/appium/node_modules/appium-android-drive ...
- 记一次需要用到复杂的groupingBy的需求
一:先定义结构 public class Foo { private Integer id; private String name; private BigDecimal amount; publi ...
- HTTP lab01 做一个简单的测试用 web页面
做一个简单的测试用 web页面 1.安装httpd服务 yum install httpd 安装完httpd服务后,系统就自动生成了/var/www/html目录 创建一个 ...
- 生成图形化html报告
生成图形化html报告: 1.从cmd 进入执行测试文件 2.执行该命令:jmeter -n -t <test JMX file> -l <test log file> -e ...
- latex 希腊字母表示
http://blog.sina.com.cn/s/blog_5e16f1770100lxq5.html
- 我的C#跨平台之旅(六):发布应用
由于此架构从一开始就将.NET Framework 的依赖降低到最低,且不依赖IIS,在ORM层面,完全实现代码优先,即真正做到数据库无关: Windows服务器部署: 在Windows应用服务器上安 ...