BIRT實現組內跨行計算

2021-09-07 11:07:20 字數 573 閱讀 7207

組內跨行計算一般要用sql窗體函式或報表指令碼去實現。但**比較複雜。這樣的情況下能夠用集算器來輔助報表工具。以下用樣例來說明。

庫表sample有三個字段,當中id是分組字段。須要設計一張分組表,id是分組字段,明細欄位是v1,v2以及計算列crossline, crossline的演算法是v1+v2+本組內上一條記錄中的v1+本組內上一條記錄中的v2。源資料例如以下:

用集算器進行資料整理:

a1:查詢資料庫。多產生一列常數備用。

a2:按id分組。並在每組資料中改動計算列crossline,最後合併。計算結果例如以下:

a3:將計算結果返回給報表工具。集算器對外提供jdbc介面。報表工具會將集算器識別為普通資料庫。

linq分組再實現組內排序

哎呀 轉前端了 才一年沒寫後端 linq查詢都忘記了 原來炒雞簡單 記錄下 1.分組查詢 簡單分組查詢 var query from p in query orderby p.index descending 可分組前排序 group p by new into p select p 2.組內排序 ...

SQL,計算group by分組後組內不同值的數量

如現有一張購物表shopping name cargo小明筆 小明橡皮小明筆 小明橡皮 小明橡皮小紅筆 小紅橡皮 小紅橡皮 現要求小明和小紅分別買了多少筆和多少橡皮,形成以下格式姓名筆 橡皮小明23 小紅12select name as 姓名,sum case when cargo 筆 then 1...

SQL實現group by 分組後組內排序

在乙個月黑風高的夜晚,自己無聊學習的sql的時候,練習,突發奇想的想實現乙個功能查詢,一張成績表有如下字段,班級id,英語成績,資料成績,語文成績如下圖 實現 查詢出 每個班級英語成績最高的前兩名的記錄。看起來不難的業務,做起來才知道還挺麻煩的,說白了其實就是實現分組後的組內排序,一般不思考的話我們...