当前位置: 首页 > 面试题库 >

将多个SQL选择结果相加?

席俊
2023-03-14
问题内容

我有三个SQL选择,需要将它们的结果加在一起。这三个中的两个使用相当复杂的联接。

select sum(field_one) from t_a join t_b on (t_a.bid = t_b.id) where t_b.user_id=:id
select sum(field_two) from t_c join t_d on (t_c.did = t_d.id) where t_d.user_id=:id
select sum(field_three) from t_e where t_e.user_id=:id

我需要的是所有三个值的总和。
sum(field_one)+sum(field_two)+sum(field_three)。无论如何,是否可以在单个语句中执行此操作?


问题答案:

你可以的UNION ALL
请勿使用UNION,因为它会忽略重复的值(5+5+5会导致5)。

Select Sum(s)
From
(
  Select Sum(field_one) As s ...
  Union All
  Select Sum(field_two) ...
  Union All
  Select Sum(field_three) ...
) x


 类似资料:
  • 问题内容: 我需要根据其他几个表中的某些匹配值从一个表中选择结果。我有以下表格: 我需要返回每个团队的所有教练和球员的姓名。我只使用过内部联接,似乎无法在此处使用那些内部联接,所以知道如何执行此操作吗? 问题答案: 这将为您提供教练: 这将为您提供球员: 因此,非优雅,简单的答案就是将所有内容与一起扔掉。

  • 我有两个针对同一个表的select查询,这两个查询在select部分中都只包含一个< code>sum(),但是在< code>where子句中有所不同。我需要做的是对两个查询的结果求和。 查询示例: 我需要的是像这样的东西 其中选择和,如我的示例查询中所示。 我试着回答这个问题,但没能成功。我还尝试用替换字段,但这不起作用,因为不允许在中使用

  • 我使用两个SELECT语句创建以下两个临时表t1和t2: 和 两个SELECT语句本质上总是返回相同数量的行。现在,我想水平连接/组合这两个结果,以获得以下输出表: 我尝试使用多个JOIN语句,但可以找到一种聪明的方法。我还尝试了UNION语句,它提供了垂直连接,但没有提供所需的水平版本。 这里有两个简单的选择语句,用于更好地定位可能的解决方案: 提前感谢您的帮助。

  • 我试图为一个问题找到一个解决方案,在这个问题上,我需要根据多个标准来细化结果。我有多个选择标准: 水果-苹果橙子葡萄 蔬菜-番茄土豆西兰花 坚果-核桃花生杏仁 谷物-玉米小麦大米 香料-肉桂姜椒 用户只能从每个组中选择一个标准,例如,您可以选择苹果,但不能选择橘子或葡萄。参见jsfiddle。 然后我有多个篮子,里面有不同的物品。 但问题是,这些结果必须基于多个标准进行精炼。例如,我选择了苹果,然

  • 问题内容: 假设我有一张桌子: 这将返回自特定日期以来销售数量的产品清单。有没有一种方法不仅可以选择这个和,而且还可以选择没有where条件的和?我想查看每种产品自特定日期以来的销售情况以及所有(没有日期限制)的销售情况。 问题答案:

  • 我的表是: 我有一个包含10,000个地址的列表,如果地址存在于表中,我将循环访问该列表以检索相应的纬度/经度。 查询如下所示: 然后我检查结果集,看看是否有匹配。然后通过上面的查询循环其他9,999个地址,这花费的时间太长了。 是否有一种方法可以创建一个包含所有10000个地址的查询,并返回一个包含4列的结果集: 任何未找到地址在结果集列中都应该有一个空(0或null)纬度/经度值。我假设我可以