中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

報表如何實現特殊分組統計功能?

發布時間:2020-06-04 02:11:46 來源:網絡 閱讀:185 作者:raqsoft 欄目:大數據

報表工具一般都會提供按某個字段分組的表達式,如按自然月分組統計,但有時候需要按不規則月份來分組,例如,某企業從 1 月 16 日開始實行某種特殊的價格策略或營銷活動,因此以后都想以每月 16 號為界來統計產品銷售情況。這里所謂不規則月份就是指: 如果起始時間是 2013-01-16,則將 2013-01-16 到 2013-02-15 作為一組,將 2013-02-16 到 2013-03-15 作為一組。有的情況是需要按數值區間統計,比如:將訂單金額按照1000、2000、4000劃分為四個區間,每個區間一組訂單,統計各組訂單的總額。

這類特殊分組,SQL很難寫,報表工具也都無法應對,只能是硬編碼的方式在外部實現,然后通過每個報表工具專有的方式將外部實現整合起來。實現這類需求,一般就是根據分組條件循環添加到某個子集合中,還需在子集合中分別實現sum(),count(*),topN()等聚合動作,代碼冗長,改動和維護都很麻煩。其實這類需求使用報表工具+集算器的方式都很簡單,集算器代碼如下,

不規則月份統計:


AB
1=connect("demo")
2=A1.query("select ? ? OrderID,Amount,OrderDate from salesall where OrderDate>=? and OrderDate<? order by ? ? OrderDate",startDate,endDate)
3=interval@m(startDate,endDate)=startDate|A3.(elapse@m(startDate,~))
4=A2.group(B3.pseg(OrderDate);round(~.sum(Amount),2),B3(#))
5=A4.new(#:Number,#2:TotalAmount,#3:StartDate)
6>A1.close()
7return A5

A7返回結果:

報表如何實現特殊分組統計功能?

集算器提供JDBC和ODBC接口,計算結果很容易被報表工具使用,代碼詳解及報表整合參見 集算器如何協助Birt實現不規則月份統計 。沒用報表工具的,可以直接在Java代碼中嵌入SPL腳本,使用方法參見 Java 如何調用 SPL 腳本? ??

數值區間分組:


A
1=sales=db.query("select * from ? sales")
2=byFac=["?<=1000","?>1000 ? && ?<=2000","?>2000 && ? ?<=4000","?>4000"]
3=sales.enum(byFac,AMOUNT)
4=A18.new(byFac(#):byFac,~.sum(AMOUNT):AMOUNT)

A4結果如下:

報表如何實現特殊分組統計功能?

詳解參見 SPL 簡化 SQL 案例詳解:固定分組

還有一些情況表面上看不出是需要分組,其實如果用分組的思路解決起來十分方便,比如,根據門禁出入情況匯總考勤,如何統計考勤記錄 ,這類有序分組運算用SQL都不好寫,用集算器SPL腳本就很簡單。有關集算器安裝使用、獲得免費授權和相關技術資料,參見如何使用集算器 。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灵山县| 江山市| 乐平市| 阳泉市| 天长市| 玛纳斯县| 三江| 湘西| 哈密市| 永顺县| 阿巴嘎旗| 内丘县| 双流县| 麻城市| 鹤山市| 昔阳县| 龙川县| 米泉市| 孟津县| 冀州市| 将乐县| 巫溪县| 台中县| 辽阳县| 黄梅县| 靖西县| 阿合奇县| 墨江| 仲巴县| 德令哈市| 金平| 商都县| 土默特右旗| 鹤壁市| 周口市| 安陆市| 分宜县| 曲周县| 红原县| 潜山县| 通海县|