`
canonical
  • 浏览: 364559 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[导入]交叉表:平面表的并置

SQL 
阅读更多

交叉表(Cross Table)的基本特点是具有横纵两个自由延展的维度,而平面表结构只有一个可延展的维度,因为平面表的列名和列数是确定的。例如,地区的产品销售数量,在平面表中表达为
district_id product_id sell_num
如果表现为交叉表,则为
           productA  productB
districtA   sellNum   sellNum
districtB   sellNum   sellNum
这种结构上的失配需要通过程序逻辑来进行调整。

注意到平面表结构只具有一个可延展的维度,而join可以看作是该维度上的连接操作。因此我们可以将交叉表看作是多个简单平面表结构并置的结果。即分解为
A:        
           productA
districtA   sellNum
districtB   sellNum

B:
           productB
districtA   sellNum
districtB   sellNum

横向维度的扩展在程序中表达。

SqlInfo结构封装了这种简单平面表的分解片断。
class SqlInfo{
    List fieldNames;
    SQL sql;
    String keyField;
}

我们在程序中通过JoinBuilder来实现横向维度的构造
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

分享到:
评论

相关推荐

    GPS数据导入方法.pdf

    - 确定参数后,软件会自动生成平面路径图,用户可以执行路径自动设置,选择起始桩和终止桩,重新刷新并保存平面路径。 5. **数据转换**: - GPS处理软件(如SLW)中,点击“保存”,将处理过的数据导入。 - 在...

    Altium Designer

    - **导入网表、散开元件**:网表是电路设计的电气连接蓝图,通过导入网表,可以将电路图中的元件及其连接关系映射到PCB上。 - **设置设计规则**:设计规则控制了PCB布局的各种约束,如最小线宽、线间距、过孔大小...

    TBC软件数据处理与使用官方教程

    使用隧道竣工点 - 导入隧道竣工点以与隧道设计进行比较,以在报告和绘图工作表集中生成过冲和欠载信息。 使用机器控制 使用机器控制 - 创建一组作业现场设计文件,可以将其下载到安装在作业现场的土方机器上的...

    SPECCTRAQuest电源完整性设计指导

    1. **设置板的分析数据库**:使用设置向导逐步建立电源完整性分析所需的板级数据库,包括创建和导入板框、明确板子的层叠关系、给平面加上直流电压、匹配电源平面对等。 2. **定义目标阻抗**:通过确定仿真参数来...

    Autodesk_Civil_3D教程All.pdf

    4. 平面分图和平面标注,为平面设计提供清晰的表达。 5. 土方施工图、生成零线、交叉口标注等,确保施工过程中的细节准确无误。 总的来说,Autodesk Civil 3D 中国本地化软件包不仅具备强大的设计和计算能力,还...

    SOLIDWORKS 的曲面技巧与操作[宣讲].ppt

    2. **复制排列面(Copy and Arrange Faces)**:快速复制并按照特定模式排列曲面。 3. **置换面(Replace Face)**:替换导入文件中的曲面,以修正或优化模型。 4. **破面的填补方式与技巧**:采用多种方法填补模型中的...

    PADS_Layout_2007中文教程

    - **平面层的作用**:用于提供电源或地信号的连续平面,改善信号完整性并降低电磁干扰。 - **创建方法**: - **创建CAM平面**:适用于特定层的铜皮填充。 - **创建分隔/混合平面**:支持在同层上同时实现多个...

    PCB 板制作-PCB 板制作方法

    在软件中创建新的PCB文件,导入网络表,软件会自动将元件布局到板上。此时,元件的位置通常是随机的,需要手动调整以优化空间利用和信号质量。 5. PCB布局与布线: 布局阶段,要考虑元件的大小、热耗散、电磁兼容...

    DesignModeler中分割面的简易教程-直接imprint.doc

    Imprint是一种合并几何特征的方式,它可以将多个面合并为一个单一的、连续的表面,同时消除重叠或交叉的几何元素。在分割面的过程中,imprint可以帮助我们创建出清晰的边界,使得后续的分析更加准确。 步骤一:打开...

    MapInfo实验报告

    4. **矢量化处理**:使用MapInfo软件将现有的栅格图像(如邯山区的平面图)转换成矢量格式。 #### 三、实验准备 - **软件准备**:确保安装了MapInfo 7.0软件。 - **MapInfo基本功能**:熟悉MapInfo的数据管理、地图...

    pads2007教程

    - 网表(netlist)的导入。 - 元件列表的创建与管理。 - 设计规则的设定。 #### 五、定义设计规则(Defining Design Rules) - **规则类型**: - 线宽(line width)。 - 间隙间距(clearance)。 - 钻孔大小(drill ...

    Arcgis分幅图制作流程图.doc

    选中所有图框,缓冲区造 50,选中所有图框点平面交叉线保留需要的,剩余全删除。 步骤 14:处理图容 a.图斑号和地类符号:将互相压盖的点移开→;如果图斑过小放不下就拉出图斑外,拉引线表示→,点不能压点,点不...

Global site tag (gtag.js) - Google Analytics