zoukankan      html  css  js  c++  java
  • mysql连续聚合

    连续聚合是按时间顺序对有序数据进行聚合的操作。

    在下面的救示例中将使用EmpOrders表,该表用于存放每位员工每月发生的订购数量。
    运行如下 代码创建EmpOrders表并填充示例数据。
    CREATE TABLE EmpOrders (
    empid INT NOT NULL,
    ordermonth DATE NOT NULL,
    qty INT NOT NULL,test
    PRIMARY KEY (empid,ordermonth)
    );
    
    查询order表和orderdetails表住EmpOrder表插入每个月的订单,sql语句如下(技巧是根据月分组)
    INSERT INTO EmpOrders 
    SELECT a.employeeid,orderdate AS Order date,SUM(quantity) AS qty 
    FROM orders a
    INNER JOIN orderdetails b
    ON a.orderid=b.orderid
    GROUP BY employid,DATE_FORMAT(orderdate,'%Y-m');
    

    下面给出生成示例数据的php文件

    <?php
    $sql = "INSERT INTO emporders SELECT %s,'%s-%02d-01',%s;".'<br />';
    $insert_sql = '';
    for($empid=1;$empid<=8;$empid++)
    {
        for($year=2009;$year<=2015;$year++)
        {
            for($month=1;$month<=12;$month++)
            {
                $num = rand(20,800);
                $insert_sql .= sprintf($sql,$empid,$year,$month,$num);
            }
            $insert_sql .= '<br />';
        }
    }
    echo $insert_sql;
    
    以下是员工订单表EmpOrder部分数据
    下面根据EmpOrders表讨论3个连续聚合的问题:累积、滑动、年初至今。
  • 相关阅读:
    maven工程下的“run as application”
    Spark机器配置计算
    数学思路
    关联和依赖
    spark数据倾斜
    windows的DOS窗口如何修改大小
    MySQL的索引创建、删除
    使用composer命令创建laravel项目命令详解
    Windows平台查看端口占用情况
    使用composer安装laravel
  • 原文地址:https://www.cnblogs.com/chenqionghe/p/4679730.html
Copyright © 2011-2022 走看看