<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 176, comments - 240, trackbacks - 0, articles - 7

    交叉表(Cross Table)的基本特點是具有橫縱兩個自由延展的維度,而平面表結(jié)構(gòu)只有一個可延展的維度,因為平面表的列名和列數(shù)是確定的。例如,地區(qū)的產(chǎn)品銷售數(shù)量,在平面表中表達為
    district_id product_id sell_num
    如果表現(xiàn)為交叉表,則為
               productA  productB
    districtA   sellNum   sellNum
    districtB   sellNum   sellNum
    這種結(jié)構(gòu)上的失配需要通過程序邏輯來進行調(diào)整。

    注意到平面表結(jié)構(gòu)只具有一個可延展的維度,而join可以看作是該維度上的連接操作。因此我們可以將交叉表看作是多個簡單平面表結(jié)構(gòu)并置的結(jié)果。即分解為
    A:        
               productA
    districtA   sellNum
    districtB   sellNum

    B:
               productB
    districtA   sellNum
    districtB   sellNum

    橫向維度的擴展在程序中表達。

    SqlInfo結(jié)構(gòu)封裝了這種簡單平面表的分解片斷。
    class SqlInfo{
        List fieldNames;
        SQL sql;
        String keyField;
    }

    我們在程序中通過JoinBuilder來實現(xiàn)橫向維度的構(gòu)造
    JoinBuilder.begin(sqlInfoA)
               .join(sqlInfB)
               .leftJoin(sqlInfoC)
               .end();
    生成的sql語句示例如下
    select sqlInfoA.fieldNames, sqlInfoB.fieldNames
    from sqlInfoA.sql join sqlInfoB.sql
    on sqlInfoA.keyField = sqlInfoB.keyField

    主站蜘蛛池模板: 77777亚洲午夜久久多人| 亚洲黄色激情视频| 国产香蕉免费精品视频| 亚洲午夜无码久久| 伊人久久综在合线亚洲91| 99ee6热久久免费精品6| 亚洲av日韩专区在线观看| 亚洲阿v天堂在线| 成年在线网站免费观看无广告 | 亚洲av乱码一区二区三区按摩| 亚洲日韩中文在线精品第一 | 亚洲免费在线观看视频| 亚洲精品中文字幕无码A片老| 亚洲国产日韩在线视频| 成人毛片免费视频| 国产麻豆成人传媒免费观看| 亚洲自偷自偷在线成人网站传媒 | 亚洲av日韩专区在线观看| 久久亚洲精品无码| 国产精品免费视频一区| 91精品国产免费网站| 一级毛片免费播放男男| 亚洲精品中文字幕无乱码麻豆| 久久久久亚洲精品中文字幕| 成人午夜视频免费| 99在线免费观看视频| 特级毛片爽www免费版| 亚洲小说图区综合在线| 久久精品国产亚洲精品2020| 亚洲日本一区二区一本一道| 成人看的午夜免费毛片| 91青青青国产在观免费影视| jizz在线免费播放| 爱情岛论坛亚洲品质自拍视频网站 | 国产精品亚洲二区在线观看| 69堂人成无码免费视频果冻传媒 | 亚洲一级毛片免费看| 国内精品免费久久影院| 在线观看亚洲电影| 亚洲综合小说另类图片动图 | 亚洲av无码成h人动漫无遮挡|