成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

前端報表數(shù)據(jù)處理【去重、行轉(zhuǎn)列、交叉、聚合】

Richard_Gao / 3124人閱讀

摘要:原始數(shù)據(jù)張三語文李四語文王五語文張三數(shù)學(xué)李四數(shù)學(xué)王五數(shù)學(xué)張三英語李四英語簡單去重羅列輸出語文語文語文數(shù)學(xué)數(shù)學(xué)數(shù)學(xué)英語英語聚合公式姓名科目成績輸出姓名科目成績張三語文李四語文王五語文張三數(shù)學(xué)李四數(shù)學(xué)王五數(shù)學(xué)張三英語李四英語交叉聚合公式總分總成

原始數(shù)據(jù)
let data = {
    fields: ["name", "subject", "score"],
    data: [
        ["張三", "語文", 86],
        ["李四", "語文", 92],
        ["王五", "語文", 56],
        ["張三", "數(shù)學(xué)", 100],
        ["李四", "數(shù)學(xué)", 88],
        ["王五", "數(shù)學(xué)", 98],
        ["張三", "英語", 62],
        ["李四", "英語", 83]
    ]
}
1. 簡單去重羅列
Report.format(data, [{ converge: "v" }, 2, 1])

輸出

"score" "subject"
86 "語文"
92 "語文"
56 "語文"
100 "數(shù)學(xué)"
88 "數(shù)學(xué)"
98 "數(shù)學(xué)"
62 "英語"
83 "英語"
2. 聚合(公式)
Report.format(data, [{
    converge: "v",
    formula: "sum"
}, 0, 1, 2], {
    name: "姓名",
    subject: "科目",
    score: "成績"
})

輸出:

"姓名" "科目" "成績"
"張三" "語文" 86
"李四" "語文" 92
"王五" "語文" 56
"張三" "數(shù)學(xué)" 100
"李四" "數(shù)學(xué)" 88
"王五" "數(shù)學(xué)" 98
"張三" "英語" 62
"李四" "英語" 83
"" "" 665
3. 交叉聚合(公式)
Report.format(data, [{
    field: 0,
    converge: "v",
    formula: {
        formula: "sum",
        label: "總分"
    }
}, {
    field: 1,
    converge: "v",
    formula: {
        formula: "sum",
        label: "總成績"
    }
}, 2])

輸出:

"name" "subject" "score"
"張三" "語文" 86
"" "數(shù)學(xué)" 100
"" "英語" 62
"" "總成績" 248
"李四" "語文" 92
"" "數(shù)學(xué)" 88
"" "英語" 83
"" "總成績" 263
"王五" "語文" 56
"" "數(shù)學(xué)" 98
"" "總成績" 154
"總分" "" 665
4. 交叉聚合
Report.format(data, [{
    field: 0,
    converge: "v",
    formula: "avg"
}, {
    field: 1,
    converge: "h",
    formula: "sum"
}, 2])

輸出:

"name" "語文" "數(shù)學(xué)" "英語" "sum"
"張三" 86 100 62 248
"李四" 92 88 83 263
"王五" 56 98 0 154
"avg" 78.00 95.33 48.33 221.67
5. 交叉聚合(忽略詳細)
Report.format(data, [{
    field: 0,
    converge: "v",
    formula: "avg"
}, {
    field: 1,
    converge: "h",
    formula: {
        detail: false,
        formula: "sum"
    }
}, 2])

輸出:

"name" "sum"
"張三" 248
"李四" 263
"王五" 154
"avg" 221.67
6. 平級聚合
Report.format(data, [{
    converge: "v"
}, {
    field: 1,
    converge: "v",
    formula: {
        formula: "sum",
        field: 2
    }
}, 2])

輸出:

"subject" "sum" "score"
"語文" 234 86
"" "" 92
"" "" 56
"數(shù)學(xué)" 286 100
"" "" 88
"" "" 98
"英語" 145 62
"" "" 83
7. 多級交叉聚合
Report.format({
    fields: ["province", "city", "count", "industry", "type"],
    data: [
        ["湖北", "武漢", 18000, "房地產(chǎn)", "收入"],
        ["湖北", "武漢", 10000, "房地產(chǎn)", "收入"],
        ["湖北", "武漢", 2000, "衛(wèi)生", "支出"],
        ["湖北", "武漢", 1200, "衛(wèi)生", "支出"],
        ["湖北", "武漢", 8000, "衛(wèi)生", "收入"],
        ["湖北", "武漢", 12000, "房地產(chǎn)", "支出"],
        ["湖北", "黃石", 1500, "衛(wèi)生", "支出"],
        ["湖北", "黃石", 3500, "衛(wèi)生", "收入"],
        ["湖北", "襄陽", 15800, "房地產(chǎn)", "收入"],
        ["湖北", "襄陽", 5800, "衛(wèi)生", "收入"],
        ["湖北", "襄陽", 11800, "房地產(chǎn)", "支出"],
        ["湖北", "襄陽", 1800, "衛(wèi)生", "支出"],
        ["湖南", "長沙", 16000, "房地產(chǎn)", "收入"],
        ["湖南", "長沙", 6000, "衛(wèi)生", "收入"],
        ["湖南", "長沙", 11500, "房地產(chǎn)", "支出"],
        ["湖南", "長沙", 1500, "衛(wèi)生", "支出"],
        ["湖南", "岳陽", 13600, "房地產(chǎn)", "收入"],
        ["湖南", "岳陽", 3600, "衛(wèi)生", "收入"],
        ["湖南", "岳陽", 11000, "房地產(chǎn)", "支出"],
        ["湖南", "岳陽", 1000, "衛(wèi)生", "支出"],
        ["江西", "南昌", 15400, "房地產(chǎn)", "收入"],
        ["江西", "南昌", 5400, "衛(wèi)生", "收入"],
        ["江西", "南昌", 11800, "房地產(chǎn)", "支出"],
        ["江西", "南昌", 1800, "衛(wèi)生", "支出"],
        ["江西", "九江", 14800, "房地產(chǎn)", "收入"],
        ["江西", "九江", 4800, "衛(wèi)生", "收入"],
        ["江西", "九江", 11600, "房地產(chǎn)", "支出"],
        ["江西", "九江", 1600, "衛(wèi)生", "支出"]
    ]
}, [{
    field: 0,
    formula: [{ formula: "sum", label: "全國合計" }],
    converge: "v"
}, {
    field: 1,
    formula: [{ formula: "sum", label: "省合計" }],
    converge: "v"
}, {
    field: 3,
    formula: [{
        formula: "fmt",
        label: "總利潤",
        format: function(data) {
            let fmt = 0;
            for (let i = 0, len = data.length; i < len; i += 2) {
                fmt += (data[i] - data[i + 1]);
            }
            return fmt;
        }
    }],
    converge: "h"
}, {
    field: 4,
    formula: [{
        formula: "fmt",
        label: "利潤",
        format: function(data) {
            return data[0] - data[1];
        }
    }],
    converge: "h"
}, {
    field: 2
}], { province: "省", city: "市" })

輸出:

房地產(chǎn) "" "" 衛(wèi)生 "" "" 總利潤
"" "" 收入 支出 利潤 收入 支出 利潤 ""
湖北 武漢 28000 12000 16000 8000 3200 4800 20800
"" 黃石 0 0 0 3500 1500 2000 2000
"" 襄陽 15800 11800 4000 5800 1800 4000 8000
"" 省合計 43800 23800 20000 17300 6500 10800 30800
湖南 岳陽 13600 11000 2600 3600 1000 2600 5200
"" 長沙 16000 11500 4500 6000 1500 4500 9000
"" 省合計 29600 22500 7100 9600 2500 7100 14200
江西 九江 14800 11600 3200 4800 1600 3200 6400
"" 南昌 15400 11800 3600 5400 1800 3600 7200
"" 省合計 30200 23400 6800 10200 3400 6800 13600
全國合計 "" 103600 69700 33900 37100 12400 24700 58600

具體試驗,請移步 https://github.com/shixia226/...

歡迎提出更多整改意見

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/108023.html

相關(guān)文章

  • SQL 轉(zhuǎn)列,列轉(zhuǎn)行

    摘要:行轉(zhuǎn)列,列轉(zhuǎn)行行列轉(zhuǎn)換在做報表分析時還是經(jīng)常會遇到的,今天就說一下如何實現(xiàn)行列轉(zhuǎn)換吧。列轉(zhuǎn)行假設(shè)我們有下表語文數(shù)學(xué)英語通過即可得到如下結(jié)果我們也可以使用下面方法得到同樣結(jié)果語文語文數(shù)學(xué)數(shù)學(xué)英語英語 SQL 行轉(zhuǎn)列,列轉(zhuǎn)行 行列轉(zhuǎn)換在做報表分析時還是經(jīng)常會遇到的,今天就說一下如何實現(xiàn)行列轉(zhuǎn)換吧。 行列轉(zhuǎn)換就是如下圖所示兩種展示形式的互相轉(zhuǎn)換 showImg(https://segment...

    shiina 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<