mysql連續(xù)聚合原理與用法實(shí)例分析
本文實(shí)例講述了mysql連續(xù)聚合原理與用法。分享給大家供大家參考,具體如下:
連續(xù)聚合是按時(shí)間順序?qū)τ行驍?shù)據(jù)進(jìn)行聚合的操作。
在下面的救示例中將使用EmpOrders表,該表用于存放每位員工每月發(fā)生的訂購數(shù)量。
運(yùn)行如下 代碼創(chuàng)建EmpOrders表并填充示例數(shù)據(jù)。
CREATE TABLE EmpOrders ( empid INT NOT NULL, ordermonth DATE NOT NULL, qty INT NOT NULL,test PRIMARY KEY (empid,ordermonth) );
查詢order表和orderdetails表住EmpOrder表插入每個(gè)月的訂單,sql語句如下(技巧是根據(jù)月分組)
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');
下面給出生成示例數(shù)據(jù)的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部分?jǐn)?shù)據(jù)

下面根據(jù)EmpOrders表討論3個(gè)連續(xù)聚合的問題:累積、滑動(dòng)、年初至今。
更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過程技巧大全》及《MySQL數(shù)據(jù)庫鎖相關(guān)技巧匯總》
希望本文所述對(duì)大家MySQL數(shù)據(jù)庫計(jì)有所幫助。
相關(guān)文章
Mysql表數(shù)據(jù)比較大情況下修改添加字段的方法實(shí)例
最近遇到的一個(gè)問題,需要在一張1800萬數(shù)據(jù)量的表中添加加一個(gè)字段,所以這篇文章主要給大家介紹了關(guān)于Mysql表數(shù)據(jù)比較大情況下修改添加字段的方法,需要的朋友可以參考下2022-06-06
MySQL學(xué)習(xí)筆記5:修改表(alter table)
我們在創(chuàng)建表的過程中難免會(huì)考慮不周,因此后期會(huì)修改表修改表需要用到alter table修改表語句,接下來詳細(xì)介紹,需要的朋友可以參考下2013-01-01
mysql把主鍵定義為自動(dòng)增長標(biāo)識(shí)符類型
這篇文章主要介紹了mysql中如何把主鍵定義為自動(dòng)增長標(biāo)識(shí)符類型,下面有個(gè)不錯(cuò)的示例,大家可以參考下2014-07-07
MySQL性能參數(shù)詳解之Max_connect_errors 使用介紹
這篇文章主要介紹了MySQL性能參數(shù)詳解之Max_connect_errors 使用介紹,需要的朋友可以參考下2016-05-05
MySQL通過日志恢復(fù)數(shù)據(jù)的操作步驟
在MySQL中恢復(fù)誤刪除的數(shù)據(jù)是一個(gè)常見但復(fù)雜的問題,具體的方法取決于幾個(gè)因素,包括您是否有備份、使用的是哪種存儲(chǔ)引擎(如InnoDB或MyISAM)、以及您的數(shù)據(jù)庫配置等,本文給大家介紹了MySQL通過日志恢復(fù)數(shù)據(jù)的操作步驟,需要的朋友可以參考下2024-12-12

