排除连接中的重复字段

2023-11-23

我有一个正在分析的数据集。事实证明,它可以轻松地通过人口统计和社区数据来丰富,从而极大地改善分析结果。

为了做到这一点,我在进行分析之前加入了人口统计和社区数据。我需要从核心示例集中排除一些字段,因此我的连接看起来像这样:

select sampledata.c1, 
       sampledata.c2, 
       demographics.*, 
       community.* 
from sample data 
    join demographics using (zip) 
    join community using (fips)

这会在输出中出现多个 zip 或 fips 列,而我的分析引擎无法处理这些列。我无法手动指定每个字段 - 丰富表最终会产生数百列。

我可以选择 *,但随后我会获得示例数据中我不想要的所有列。

如何在不重复字段的情况下加入丰富数据,同时仍从示例表中选择所需的列?

我的一个想法是,如果 postgres(我的数据库)能够完全限定输出中的每一列(例如 example.c1、demistics.c1 等),我会对此非常满意。


SQL 中没有列排除语法,只有列包含语法(通过所有列的 * 运算符,或显式列出列名称)。

仅生成您想要的列的列表

但是,您可以使用模式表和数据库的一些内置函数生成包含数百个列名的 SQL 语句,减去您不需要的几个重复列。

SELECT
    'SELECT sampledata.c1, sampledata.c2, ' || ARRAY_TO_STRING(ARRAY(
        SELECT 'demographics' || '.' || column_name
        FROM information_schema.columns
        WHERE table_name = 'demographics' 
        AND column_name NOT IN ('zip')
        UNION ALL
        SELECT 'community' || '.' || column_name
        FROM information_schema.columns
        WHERE table_name = 'community' 
        AND column_name NOT IN ('fips')
    ), ',') || ' FROM sampledata JOIN demographics USING (zip) JOIN community USING (fips)'
AS statement

这只会打印出语句,不会执行它。然后你只需复制结果并运行它。

如果您想一次性动态生成和运行该语句,那么您可以阅读如何在PostgreSQL 文档.

在表名前面加上列名

或者,这会生成所有列的选择列表,包括那些具有重复数据的列,但随后为它们添加别名以包含每列的表名称。

SELECT
    'SELECT ' || ARRAY_TO_STRING(ARRAY(
        SELECT table_name || '.' || column_name || ' AS ' || table_name || '_' || column_name
        FROM information_schema.columns
        WHERE table_name in ('sampledata', 'demographics', 'community')
    ), ',') || ' FROM sampledata JOIN demographics USING (zip) JOIN community USING (fips)'
AS statement

同样,这只会生成语句。如果您想要动态生成和运行语句,那么您需要温习数据库的动态 SQL 执行,否则只需复制并运行结果。

如果您确实想要在列别名中使用点分隔符,那么您必须使用双引号别名,例如SELECT table_name || '.' || column_name || ' AS "' || table_name || '.' || column_name || '"'。然而,双引号别名可能会导致额外的复杂性(区分大小写等);因此,我使用下划线字符将表名与别名中的列名分开,然后可以将别名视为常规列名。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

排除连接中的重复字段 的相关文章

  • 带有可变 WHERE 子句的批量 UPDATE 表

    我有一堆值对 foo1 bar1 foo2 bar2 我想做一堆更新 将 foo 列设置为 foo1 其中 bar 列为 bar1 我正在使用 psycopg2 在 Python 中执行此操作 我可以executemany与查询UPDATE
  • H2 SQL 日期比较

    在 H2 数据库中 如何在 TIMESTAMP 类型的列上运行查询 SELECT FROM RECORDS WHERE TRAN DATE lt 2012 07 24 Try 2012 07 24
  • SQL Server:为什么 ISO-8601 格式的日期依赖于语言?

    我需要一些帮助来理解 SQL Server 中的日期格式处理 如果您尝试以下操作 它将返回正确的结果 SET LANGUAGE English SELECT CAST 2013 08 15 AS DATETIME 2013 08 15 00
  • Java、Oracle 中索引处缺少 IN 或 OUT 参数:: 1 错误

    您好 我使用 Netbeans 8 0 2 和 Oracle 11g Express Edition 在 JSF 2 2 中编写了一个图书馆管理系统 我有几个名为 书籍 借阅者 等的页面 以及数据库中一些名为相同名称的表 我的问题是这样的
  • 如何拥有引用另一个表的检查约束?

    我在 SQL Server 2008 数据库中有以下表 tblItem 其中有一个ItemID field 好项目 它还有一个 ItemID 字段 并且有一个指向 tblItem 的外键 tblBadItem 它也有一个 ItemID 字段
  • 如何加速spark df.write jdbc到postgres数据库?

    我是 Spark 新手 正在尝试使用 df write 加速将数据帧的内容 可以有 200k 到 2M 行 附加到 postgres 数据库 df write format jdbc options url psql url spark d
  • 在Python中检索PostgreSQL数据库的新记录

    在数据库表中 第二列和第三列有数字 将会不断添加新行 每次 每当数据库表中添加新行时 python 都需要不断检查它们 当 sql 表中收到的新行数低于 105 时 python 应打印一条通知消息 警告 数量已降至 105 以下 另一方面
  • MySQL 可选的带有 MATCH 的 LEFT JOIN

    我有以下查询 它对 MySQL Innodb 数据库中同一搜索词的两个不同表中的两列执行全文搜索 SELECT Id MATCH tb1 comment tb2 comment AGAINST search term IN BOOLEAN
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • Oracle:按月分区表

    我的解决方案 德语几个月 PARTITION BY LIST to char GEBURTSDATUM Month PARTITION p1 VALUES JANUAR PARTITION p2 VALUES Februar PARTITI
  • SQL 标准是否允许函数名和括号之间有空格

    检查一些 RDBMS 我发现类似的事情 SELECT COUNT a SUM b FROM TABLE 允许 注意聚合函数和括号之间的空格 谁能提供一个指向 SQL 标准本身定义的指针 任何版本都可以 编辑 以上在postgres中工作 m
  • 将DataTable批量插入postgreSQL表中

    在 SQL 中 我们执行类似的操作来批量插入数据表 SqlBulkCopy copy new SqlBulkCopy sqlCon copy DestinationTableName strDestinationTable copy Wri
  • 处理与不同相关实体的一对多的正确模式

    我有一个 C 项目 我使用实体框架作为 ORM 我有一个User 可以向多家银行付款 每家银行都是一个独立的实体 并且每家银行都由不同的字段描述 问题是 一User可以没有或有很多不同的Banks 我不太确定如何对此进行建模 临时解决方案是
  • ALTER TABLE 语句与 FOREIGN KEY 约束冲突

    为什么要添加外键tblDomare表导致此错误 ALTER TABLE 语句与 FOREIGN KEY 约束 FK tblDomare PersN 5F7E2DAC 冲突 冲突发生在数据库 almu0004 表 dbo tblBana 列
  • PLpgSQL 函数不返回匹配的标题

    当给定文本时 我试图返回电影名称以及演员和工作人员的数量 当我输入字符串并使用 ilike 时 我的查询返回不匹配的标题 我之前创建了一个视图 其中包含要在函数中输入的电影标题和工作人员数量 我的代码是 create or replace
  • 无法与重定向器建立连接。确保“sql browser”服务正在运行

    所以我尝试这个 sql server 2012 由于这个错误我无法打开任何 ssis 包 无法与重定向器建立连接 确保 sql browser 服务正在运行 我的 Sql 浏览器肯定正在运行 我尝试在本地服务 本地系统和网络下更改它 仍然没
  • 是否可以从子查询中获取多个值?

    有没有办法让子查询在oracle db中返回多列 我知道这个特定的sql会导致错误 但它很好地总结了我想要的 select a x select b y b z from b where b v a v from a 我想要这样的结果 a
  • 计算2个日期之间每个日期的记录数

    我必须创建一个查询来返回多轴图表的结果 我需要计算为 2 个日期之间的每个日期创建的 ID 数量 我试过这个 DECLARE StartDate datetime2 7 11 1 2020 EndDate datetime2 7 2 22
  • 针对约 225 万行的单表选择查询的优化技术?

    我有一个在 InnoDB 引擎上运行的 MySQL 表 名为squares大约有 2 250 000 行 表结构如下 squares square id int 7 unsigned NOT NULL ref coord lat doubl
  • 需要在 SQL Server 中透视字符串值

    我有一个包含值的表 描述为 Occupation String Name String Developer A Developer B Designer X Coder Y Coder Z 我需要数据透视格式的值 Designer Deve

随机推荐

  • 如何创建 dotnet core 单个可执行文件

    我想将我的 dotnet core 项目配置为编译为单个可执行文件 该项目与使用生成的项目类似dotnet new version 1 0 0 buildOptions debugType portable emitEntryPoint t
  • 为什么使用 QuantifiedConstraints 指定类型类的子类还需要子类的实例?

    我正在尝试多种无标签编码Free LANGUAGE PolyKinds LANGUAGE TypeSynonymInstances LANGUAGE TypeFamilies LANGUAGE Rank2Types LANGUAGE Fle
  • 如何从文本输入将锚标记添加到 URL

    我希望能够在评论字段中获取用户输入的文本并检查 URL 类型表达式 如果存在 则在显示评论时添加锚标记 到 url 我在服务器端使用 PHP 在客户端使用 Javascript 带有 jQ uery 所以我应该等到 URL 显示之前才检查它
  • 对 XML 模式进行版本控制的最佳实践是什么?

    我经常需要为不同的基于 XML 的导入例程设计 XML 模式 很明显 XML 模式会随着时间的推移而发展 或者它们可能包含需要修复的错误 因此捕获模式的版本并拥有某种机制来绑定特定版本非常重要 目前我有两种情况 该错误是在架构中发现的 并且
  • 将 2D 数组组合到 3D 数组

    你好 我有 3 个 numpy 数组 如下所示 gt gt gt print A 1 0 0 3 0 0 5 2 0 2 0 0 1 2 1 gt gt gt print B 5 9 9 37 8 9 49 8 3 3 3 1 4 4 5
  • 确定浮动元素中的换行位置

    假设我有六个 div 容器内的元素 div 这六个 div 中的每一个都是一个正方形并且具有 CSS 样式float left应用 默认情况下 当它们到达容器的边缘时 div 他们会包裹起来 现在 我的问题是 使用Javascript 是否
  • 实现可扩展性的最佳数据访问范例是什么?

    微软提供了许多不同的数据访问选项 哪一种最适合可扩展的应用程序 Linq 我们应该使用 Linq 吗 这看起来确实很简单 但如果您了解 SQL 它确实会有帮助 我还听说您无法使用 Linq 在 ASP NET 中运行异步查询 因此我想知道它
  • 如何使用 BeautifulSoup 获取选项文本

    我想使用 BeautifulSoup 来获取以下 html 中的选项文本 例如 我想获取 2002 12 2003 12 等
  • 使用Python/PIL裁剪图像的非对称区域

    有没有办法剪掉non使用 Python PIL 绘制图像的矩形区域 例如在这张图片中 我想排除所有黑色区域以及塔 屋顶和电线杆 http img153 imageshack us img153 5330 skybig jpg 我猜是图像路径
  • 函数模板可以用作高阶函数调用中的一等公民吗?

    将函数模板作为参数传递给另一个函数模板总是有点棘手 通常 人们必须创建一个 lambda 对象来调用原始函数 Example template
  • 在 Swift 中实现哈希组合器

    我正在延长一个struct符合Hashable 我将使用DJB2哈希组合器来完成此操作 为了使编写其他东西的哈希函数变得容易 我想扩展Hashable协议 以便我的哈希函数可以这样写 extension MyStruct Hashable
  • 数据库架构更改时 Azure 无缝升级

    假设我有一个生产部署和临时部署 两者都使用自己的 SQL Azure 数据库 如果暂存中的模式已更改并且需要部署到生产中 是否有一种定义的方法可以在生产数据库上实现数据库升级 无需停机 例如如果我交换 VIP staging 生产 同时以某
  • 如何为字符串数组中的每个元素添加字符串前缀?

    我想知道在Java中是否有一个函数可以将定义的字符串添加到字符串数组的每个字符串的开头 例如 my function apple orange ant eat an would return eat an apple eat an oran
  • 无法更新在 AFTER INSERT 中执行触发器的表

    我正在运行 MySQL 5 5 9 和 InnoDB 我尝试创建一个版本化表 其中current字段指示记录是否是最新版本 就像是 autonumber id name current 1 1 Yes 0 2 1 No 1 不管怎样 我过去
  • 成功的ajax调用后数据表不更新

    我有一个数据表 表的每一行都有一个commandButton called Remove 这应该从模型和视图中删除该行并就地执行更新 作为页脚 我还有另一个commandButton called 删除每一行 最后一个按钮有效 我单击它 每
  • Maven jersey-multipart 缺少 javax.ws.rs.core.Response 的依赖项

    我似乎缺少依赖项 但找不到解决方案 我已确保所有球衣版本均与回答的相同here Error SEVERE The following errors and warnings have been detected with resource
  • WSO2 ESB:将 JSON 提交到代理服务时出现意外字符错误

    我正在尝试使用 WSO2 ESB 4 9 0 中的 WSO2 Facebook 连接器从 Facebook 检索数据 我在下面提供了代理配置
  • 从折线图创建一维热图

    是否可以根据折线图中的数据创建一维热图 即我希望 y 中的最高值代表热图中较暖的颜色 我附上了我希望它看起来像的热图示例图像以及我当前在线图中的数据 一维热图和图表示例 为了获取图像中显示的热图 我在 python 中使用了以下代码和 ma
  • 如何从 python TypedDict 获取键类型

    如果我有一个像这样的 TypedDict class Td TypedDict bar str foo str 并且想要有一个函数 其参数需要是 TypedDict 的键 例如 def hello Td key str td Td retu
  • 排除连接中的重复字段

    我有一个正在分析的数据集 事实证明 它可以轻松地通过人口统计和社区数据来丰富 从而极大地改善分析结果 为了做到这一点 我在进行分析之前加入了人口统计和社区数据 我需要从核心示例集中排除一些字段 因此我的连接看起来像这样 select sam