最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql滑動聚合/年初至今聚合原理與用法實例分析

 更新時間:2019年12月27日 11:25:18   作者:雪山飛豬  
這篇文章主要介紹了mysql滑動聚合原理與用法,結合實例形式分析了mysql滑動聚合的相關功能、原理、使用方法及操作注意事項,需要的朋友可以參考下

本文實例講述了mysql滑動聚合/年初至今聚合原理與用法。分享給大家供大家參考,具體如下:

滑動聚合是按順序對滑動窗口范圍內的數據進行聚合的操作。下累積聚合不同,滑動聚合并不是統(tǒng)計開始計算的位置到當前位置的數據。

這里以統(tǒng)計最近三個月中員工第月訂單情況為例來介紹滑動聚合。

滑動聚合和累積聚合解決方案的主要區(qū)別在于連接的條件不同?;瑒泳酆蠗l件不再是b.ordermonth <= a.ordermonth,而應該是b.ordermonth大于前三個月的月份,并且小于當前月份。因此滑動聚合的解決方案的SQL語句如下

SELECT
 a.empid,
 DATE_FORMAT(a.ordermonth, '%Y-%m') AS ordermonth,
 a.qty AS thismonth,
 SUM(b.qty) AS total,
 CAST(AVG(b.qty) AS DECIMAL(5,2)) AS avg
FROM emporders a
INNER JOIN emporders b
 ON a.empid=b.empid
 AND b.ordermonth > DATE_ADD(a.ordermonth, INTERVAL -3 MONTH)
 AND b.ordermonth <= a.ordermonth
WHERE DATE_FORMAT(a.ordermonth,'%Y')='2015' AND DATE_FORMAT(b.ordermonth,'%Y')='2015'
GROUP BY a.empid,DATE_FORMAT(a.ordermonth, '%Y-%m'),a.qty
ORDER BY a.empid,a.ordermonth

運行結果如下

該解決方案返回的是三個月為一個周期的滑動聚合,但是每個用戶包含前兩個月并且未滿3個月的聚合。如果只希望返回滿3個月的聚合,不返回未滿3個月的聚合,可以使用HAVING過濾器進行過濾,過濾的條件為MIN(b.ordermonth)=DATE_ADD(a.ordermonth, INTERVAL -2 MONTH),例如

SELECT
 a.empid,
 a.ordermonth AS ordermonth,
 a.qty AS thismonth,
 SUM(b.qty) AS total,
 CAST(AVG(b.qty) AS DECIMAL(5,2)) AS avg
FROM emporders a
INNER JOIN emporders b
 ON a.empid=b.empid
 AND b.ordermonth > DATE_ADD(a.ordermonth, INTERVAL -3 MONTH)
 AND b.ordermonth <= a.ordermonth
WHERE DATE_FORMAT(a.ordermonth,'%Y')='2015' AND DATE_FORMAT(b.ordermonth,'%Y')='2015' AND a.empid=1
GROUP BY a.empid,DATE_FORMAT(a.ordermonth, '%Y-%m'),a.qty
HAVING MIN(b.ordermonth)=DATE_ADD(a.ordermonth, INTERVAL-2 MONTH)
ORDER BY a.empid,a.ordermonth

運行結果如下

年初至今聚合和滑動聚合類似,不同的地方僅在于統(tǒng)計的僅為當前一年的聚合。唯一的區(qū)別體現(xiàn)在下限的開始位置上。在年初至今的問題中,下限為該年的第一天,而滑動聚合的下限為N個月的第一天。因此,年初至今的問題的解決方案如下圖所示,得到的結果

SELECT
 a.empid,
 DATE_FORMAT(a.ordermonth, '%Y-%m') AS ordermonth,
 a.qty AS thismonth,
 SUM(b.qty) AS total,
 CAST(AVG(b.qty) AS DECIMAL(5,2)) AS avg
FROM emporders a
INNER JOIN emporders b
  ON a.empid=b.empid
  AND b.ordermonth >= DATE_FORMAT(a.ordermonth, '%Y-01-01')
  AND b.ordermonth <= a.ordermonth
  AND DATE_FORMAT(b.ordermonth,'%Y')='2015'
GROUP BY a.empid,a.ordermonth,a.qty
ORDER BY a.empid,a.ordermonth

運行結果如下

更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL常用函數大匯總》、《MySQL日志操作技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數據庫鎖相關技巧匯總

希望本文所述對大家MySQL數據庫計有所幫助。

相關文章

  • MySQL 空間碎片的查看與回收

    MySQL 空間碎片的查看與回收

    ySQL數據庫在運行過程中可能會出現(xiàn)空間碎片的問題,本文就來介紹一下MySQL 空間碎片的查看與回收 ,具有一定的參考價值,感興趣的可以了解一下
    2025-02-02
  • mysql8.0?my.ini?如何永久修改時區(qū)

    mysql8.0?my.ini?如何永久修改時區(qū)

    這篇文章主要介紹了mysql8.0?my.ini?如何永久修改時區(qū),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • MySQL解決Navicat設置默認字符串時的報錯問題

    MySQL解決Navicat設置默認字符串時的報錯問題

    本文主要介紹了MySQL解決Navicat設置默認字符串時的報錯,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • 淺談MySQL之select優(yōu)化方案

    淺談MySQL之select優(yōu)化方案

    我們是否看到過在公司中許多查詢語句都是select * xxxx,本文就主要介紹了MySQL之select優(yōu)化方案,具有一定的參考價值,感興趣的可以了解一下
    2021-08-08
  • Mysql數據庫 ALTER 操作詳解

    Mysql數據庫 ALTER 操作詳解

    這篇文章主要介紹了Mysql數據庫 ALTER 操作詳解的相關資料,需要的朋友可以參考下
    2022-09-09
  • MySQL使用innobackupex備份連接服務器失敗的解決方法

    MySQL使用innobackupex備份連接服務器失敗的解決方法

    這篇文章主要為大家詳細介紹了MySQL使用innobackupex備份連接服務器失敗的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • Mysql中xtrabackup備份的實現(xiàn)

    Mysql中xtrabackup備份的實現(xiàn)

    Xtrabackup是Percona團隊開發(fā)的用于MySQL數據庫物理熱備份的開源備份工具,本文就來介紹一下Mysql中xtrabackup備份的實現(xiàn),就有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • 詳解MySQL InnoDB的索引擴展

    詳解MySQL InnoDB的索引擴展

    這篇文章主要介紹了MySQL InnoDB的索引擴展的相關資料,幫助大家更好的理解和學習MySQL,感興趣的朋友可以了解下
    2020-08-08
  • MySQL 事務autocommit自動提交操作

    MySQL 事務autocommit自動提交操作

    這篇文章主要介紹了MySQL 事務autocommit自動提交操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Navicat自動備份MySQL數據的流程步驟

    Navicat自動備份MySQL數據的流程步驟

    對于從事IT開發(fā)的工程師,數據備份我想大家并不陌生,這件工程太重要了!對于比較重要的數據,我們希望能定期備份,每天備份1次或多次,或者是每周備份1次或多次,所以本文給大家介紹了Navicat自動備份MySQL數據的流程步驟,需要的朋友可以參考下
    2024-12-12

最新評論

台北市| 从江县| 常山县| 竹北市| 应城市| 邢台市| 黑河市| 原平市| 普兰县| 饶平县| 清苑县| 收藏| 梨树县| 崇仁县| 武穴市| 当涂县| 襄垣县| 塔城市| 竹溪县| 德州市| 屯留县| 肃宁县| 江油市| 渝中区| 保康县| 新竹县| 营山县| 疏勒县| 固安县| 蒲江县| 台湾省| 鄂托克旗| 遂溪县| 门源| 黄梅县| 敦煌市| 沅江市| 吴忠市| 施甸县| 临泽县| 观塘区|