在 SQL 中多次连接同一个表[重复]

2024-02-21

我有一个表,每个 tran_ref 列有 3 行或更多行,每行都有 amount 以及 tran_id 以下是我的输入表

tran_ref | tran_id | amount
T1       |01.      | 9
T1       |02.      | -8
T1       |03       | -1
T2       |01.      | 5
T2       |02.      | -4
T2       |03       | -1
T2       |03       | -1

我想在其他表中为每个 tran_ref 一行

tran_ref |  amount_01 | amount_02| amount_03 | count_of_ref_rows
T1       | 9        | -8     | -1.     | 3
T2       | 5        | -4     | -2.     | 4

我尝试加入但没有按预期工作 谢谢 :)

更新数据

如果这是桌子

tran_ref | tran_id | amount.        | currency    | Date
T1       |01.      | 9.              | USD.       | 02-09-2020
T1       |02.      | -8.             | INR.       | 03-09-2020
T1       |03       | -1.             | INR.       | 03-09-2020

需要更新结果

 tran_ref |  amount_01 | amount_02| amount_03 | count | cur1| cur23|date1
 T1       | 9         | -8     | -1.     | 3.       | USD | INR |02-092020

请注意,currency1 应来自 tran_id 1,currency23 应来自 tranId23,日期应仅来自 tran_id 1


您可以使用 Case 表达式:

SELECT tran_ref, SUM(CASE WHEN tran_id = 1 THEN AMOUNT END) AS AMOUNT_01,
SUM(CASE WHEN tran_id = 2 THEN AMOUNT END) AS AMOUNT_02,
SUM(CASE WHEN tran_id = 3 THEN AMOUNT END) AS AMOUNT_03,
COUNT(*) count_of_ref_rows
FROM TABLE1
GROUP BY tran_ref;

此外,您还可以使用 PIVOT 子句来实现此目的:

select a.*, b.count_total from
(SELECT tran_ref, [1] as amount_01, [2] as amount_02, [3] as amount_03
FROM TABLE1
PIVOT(sum(amount) FOR tran_id IN ([1] , [2], [3])) pivot_table) a
 inner join (SELECT tran_ref, count(1) count_total
FROM TABLE1 group by tran_ref) b on (a.tran_ref = b.tran_ref);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 SQL 中多次连接同一个表[重复] 的相关文章

  • 表与视图的性能

    最近开始使用一个数据库 其中的惯例是为每个表创建一个视图 如果您假设表和视图之间存在一对一的映射 我想知道是否有人可以告诉我这样做对性能的影响 顺便说一句 这是在 Oracle 上的 假设问题是关于非物化视图 实际上取决于视图所基于的查询以
  • 在 Linux 中,Distinct SQL 无法与 UNNEST 一起使用

    当我在窗口系统中运行此查询时 行为正确 UNNEST 但是当我运行这个查询时 Linux 的行为不同 unnest 重复记录列表在不同的行上 SELECT DISTINCT billing billmanagement creation d
  • 该模型已具有同名的元素 - ASP.NET

    我正在使用 ASP Net Web 应用程序 每当我尝试添加FOREIGN KEY此错误出现在数据工具操作中 SQL71508 该模型已具有同名的元素 dbo FK Sellers Users SQL71508 该模型已经有一个元素 具有相
  • SQL Server 列的默认值

    当您使用列的默认值时SQL Server Management Studio表设计器 SSMS 更改您的默认值并在其周围添加括号 在所有版本和 SQL Server 的所有版本中 例如 如果您设置0作为默认值 此默认值更改为 0 我不知道为
  • 如何使用带有 where 子句的内连接?

    我在这里发布一些扩展如何连接多个sql查询以获得一张表 https stackoverflow com questions 71098208 how to concatenate more sql queries to get one ta
  • 长 IN 子句是代码异味吗?

    简单的问题 想知道长 IN 子句是否有代码味道 我真的不知道如何证明它的合理性 除了我认为的味道之外 我无法解释为什么它有味道 select name code capital population flower bird from us
  • SQL Server 列的默认登录用户

    如何创建一个列 其中包含当时在表中创建该行的用户的默认值 I tried system user 但这显示了从表中进行选择时登录的人员 尝试这样的事情 CREATE TABLE DemoTable ID INT IDENTITY 1 1 S
  • SQLite:具有四个表的完全外连接

    编辑 可以找到这个问题的扩展here https stackoverflow com questions 47667304 sqlite full outer join with four tables with 30 columns 我想
  • 使用 JOIN 或 EXISTS 可以获得更好的性能吗?

    我有两个表格 机构 和 结果 我想查看机构是否有任何结果 这样我就可以排除没有结果的机构 使用 JOIN 或 EXISTS 可以获得更好的性能吗 谢谢你 Nimesh 根据语句 统计信息和数据库服务器 这可能没有什么区别 可能会生成相同的优
  • Spark:用列的平均值替换数据框中的空值

    如何创建 UDF 以编程方式将每列中 Spark 数据框中的空值替换为列平均值 例如 在示例中 数据 col1 空值的值为 2 4 6 8 5 5 5 示例数据 col1 col2 col3 2 null 3 4 3 3 6 5 null
  • 如何在 Postgres 中将表从公共模式移动到其他模式

    Postgres 9 1 数据库包含公共模式中的表 yksus1 ykssu9 pgAdmin 显示了这些定义 如下面的代码所示 如何将这些表移至 Firma1 架构 Firma1 模式中的其他表具有对这些表主键的外键引用 对这些表的外键引
  • 如何解决将表达式转换为数据类型 int 时出现算术溢出错误?

    我有以下查询 CTE to remove outliers e g remove the fastest and slowest results WITH MinMaxCTE AS SELECT ServerName CONVERT VAR
  • 相当于 pandas 'transform' 的 SQL 是什么?

    假设您有以下 SQL 表 A B C 2 1 4 3 4 5 3 1 1 1 4 0 5 0 1 并且您想要添加 显示一个列 其中包含 A 列对于 B 列的每个不同值的平均值 或任何其他聚合函数 您想要保留所有列 所以结果会是这样的 A B
  • MySQL 中的排名函数

    我需要找出客户的等级 这里我根据我的要求添加相应的 ANSI 标准 SQL 查询 请帮我将其转换为 MySQL SELECT RANK OVER PARTITION BY Gender ORDER BY Age AS Partition b
  • 选择出现多次的行

    TableOne PersonId PersonScore 1 10 1 20 2 99 2 40 3 45 我只需要获取 PersonId 多次出现的那些行 例如以下是我想要实现的结果集 PersonId PersonScore 1 10
  • 从 all_tab_columns 中选择,其中表有 > 0 行

    我需要在大型数据库中搜索与列名匹配的表 但该表必须有超过 0 行 顺便说一句 这是查询 SELECT FROM all tab columns WHERE column name LIKE ID SUPPORT 您可以使用单个查询来过滤名称
  • SQL Server 中“WITH SCHEMABINDING”的缺点?

    我有一个数据库 其中有数百个名称尴尬的表 CG001T GH066L 等 并且我对每个表都有其 友好 名称的视图 例如 视图 CUSTOMERS 是 SELECT FROM GG120T 我想将 WITH SCHEMABINDING 添加到
  • 检查SQL Server数据库表中是否存在表或列

    在 SQL Server 数据库中创建列或表之前 我想检查所需的表和 或列是否存在 我已经四处搜寻 到目前为止发现了两种方法 我不想使用存储过程 通过使用SqlCommand ExecuteScalar 方法并捕获异常来确定表 列是否存在
  • 而不是SQL Server中的触发器丢失SCOPE_IDENTITY?

    我有一个表 我在其中创建了一个INSTEAD OF触发执行一些业务规则 问题是当我将数据插入该表时 SCOPE IDENTITY 返回一个NULL值 而不是实际插入的身份 插入 范围代码 INSERT INTO dbo Payment Da
  • MySQL JOIN 的评估顺序是什么?

    我有以下查询 SELECT c FROM companies AS c JOIN users AS u USING companyid JOIN jobs AS j USING userid JOIN useraccounts AS us

随机推荐

  • 如何按值对多维数组进行排序? [复制]

    这个问题在这里已经有答案了 我有一个如下数组 我想按键 attack 的值对该数组进行排序 数组的第一个键 15 13 18 是数据库中某些特定项目的 ID 因此我不希望在数组排序时更改这些键 任何帮助将不胜感激 这是数组 data arr
  • MongoException:名称索引:代码已存在且具有不同选项

    我有一个mongodb收藏term具有以下结构 id 00002c34 a4ca 42ee b242 e9bab8e3a01f terminologyClass USER code X67 terminology some term rel
  • 用 Haskell 解释 Parigot 的 lambda-mu 演算

    我们可以用 Haskell 来解释 lambda 演算 data Expr Var String Lam String Expr App Expr Expr data Value a V a F Value a gt Value a int
  • Powershell 中所有进程的 CPU 和内存使用百分比

    有没有一种方法可以查看所有正在运行的进程的 CPU 和内存利用率百分比PowerShell 我已经尝试过以下方法 Get Process Process 0 CPU Usage 1 Memory Usage 2 f ProcessName
  • Vue 路由器页面刷新时出现 404

    我正在使用具有历史模式的 Vue 路由器 在按钮上单击当前页面 我将其路由到下一页 在第二页上 当我重新加载时 我收到 404 有没有办法在 Vue 中处理这个问题并将其重定向到主页 export default new Router mo
  • 如何在 Alexa Skill 中使用 Java 获取亚马逊用户电子邮件

    我是 Alexa 技能开发的新手 我正在尝试开发一项 Alexa 通过我的电子邮件回复的技能 我正在开发 Java 技能 并且我刚刚能够通过以下方式获取用户会话 ID getSession getUser getUserId Getting
  • 如何记录 Azure 服务总线访问?

    有没有办法记录对 Azure 服务总线的访问 我们正在寻找一种方法来记录谁在服务总线中创建 删除主题 订阅 命名空间 无论是从 Azure 门户还是从外部源 如 API 或 Service Bus Explorer We have Azur
  • “错误:没有 Overlay 提供程序!”

    In my Angular 2 0 0 rc 7 Angular Material 2 0 0 alpha 8 1应用程序构建Angular CLI 1 0 0 beta 11 webpack 9 1 升级后出现以下错误rc 5 alpha
  • AWS 相当于 Firebase 实时数据库的是什么?

    我目前正在开发一个新的游戏项目 该项目将由 React Native 前端和基于 Lambda 的后端组成 该应用程序需要一些实时功能 例如活动用户记录 地理围栏等 我正在研究 Firebase 的实时数据库 它看起来像是一个非常优雅的实时
  • Vim:使用 \_ 跨多行匹配字符串时。在正则表达式中,:yank 命令仅适用于第一行

    我想提取一些跨越多行的文本的多次出现 并且可以与单个 Vim 正则表达式匹配 使用元字符 不幸的是 尽管 Vim 中匹配的行被正确突出显示 当我在匹配的正则表达式后添加任何 Vim 命令 例如删除或拉取 时 该命令仅适用于每场比赛的第一行
  • 在这种情况下我应该如何舍入浮点数?

    由于同一浮点数可以有多种表示形式 我的代码中遇到了问题 例如 这些数字被认为是相同的 0 0299999400 0 0300000000 我不太关心大精度 我需要计算CRC这些数字的数量 它们应该是相同的 所以我的方法是使用以下代码 pri
  • 在超级项目中自动提交 git 子模块哈希

    当你在git子模块中提交时 你需要到超级项目中进行第二次提交 这是子模块的新哈希 这非常烦人 很容易忘记 如果您不这样做 可能会导致各种问题 我想做的是 提交我的子模块中的更改 在超级项目中自动提交哈希 将子模块和超级项目推送到其远程源 g
  • 优化多词编辑距离的速度

    我有一个元胞数组字典 其中包含很多单词 约 15000 个 我想计算函数strdist 计算 Levenshtein 距离 所有单词对 我尝试了两种方法 但它们都很慢 什么是更有效的解决方案 这是我的代码 dict keys 是我长度为 m
  • 使用 Nokogiri 插入和删除 XML 节点和元素

    我想提取 XML 文件的部分内容 并记下我提取了该文件中的某些部分 例如 此处提取了某些内容 我正在尝试使用 Nokogiri 来做到这一点 但似乎并没有真正记录如何 删除 a 的所有子项
  • 修剪字符字段

    我们目前使用的是 Delphi 和 Borland 数据库 我们计划从 borland 迁移到 Firebird 库 borland lib 有内存泄漏 我们现在遇到的问题是 Firebird 库返回一个带有尾随空格的字符 这是 borla
  • 实体框架表拆分:不在同一类型层次结构中/没有有效的一对一外键关系

    我使用实体框架 6 和代码优先方法 并且我希望将两个实体放入同一个表中 我究竟做错了什么 Table Review public class Review public int Id get set public PictureInfo P
  • 为什么Koala无法编译默认的Bootstrap 3 less文件?

    我正在努力学习 Bootstrap 3 及 Less 但在开始之前我就陷入了死胡同 经过两天的反复试验 我最终选择了Koala来将Less编译成CSS 我使用的是 Mac OS 10 7 所以 Codekit 已经出来了 现在只能在 8 上
  • Ruby 1.9 中的垃圾收集器调整

    我知道关于GC enable disable 但是有什么方法可以控制 Ruby1 9垃圾收集器更详细吗 在分析我的代码时 使用 perftools rb 我注意到 GC 最多占总样本的 30 我想看看是否可以调整 GC 以减少这个数字 是否
  • Java中的局部变量清空对GC有帮助吗

    我 被迫 添加myLocalVar null 在离开方法之前将语句放入finally子句中 原因是为了帮助GC 有人告诉我下次服务器崩溃时我会在晚上收到短信 所以我最好这样做 我认为这是毫无意义的 因为 myLocalVar 的范围仅限于方
  • 在 SQL 中多次连接同一个表[重复]

    这个问题在这里已经有答案了 我有一个表 每个 tran ref 列有 3 行或更多行 每行都有 amount 以及 tran id 以下是我的输入表 tran ref tran id amount T1 01 9 T1 02 8 T1 03