【问题标题】:Sum of two queries两个查询的总和
【发布时间】:2019-10-18 00:05:47
【问题描述】:

我的桌子是这样的:

我做了两个查询:

SELECT COUNT(column_1) AS result_1 FROM table WHERE column_1= 5;
SELECT COUNT(column_2) AS result_2 FROM table WHERE column_2 = 5;

第一个查询给我 result_1 = 2,第二个 result_2 = 3

我需要进行一个查询,得到这两个的总和 (2+3=5)。 我总是得到两个结果或只得到其中一个。

【问题讨论】:

  • “这两者的总和”是什么意思?这还不清楚。使用足够多的单词、句子和对部分示例的引用来清楚完整地表达你的意思。描述结果:说足够多的人可以离开并带着解决方案回来。你没有。你甚至没有给出一个例子,所以我们甚至无法猜测那是什么。 minimal reproducible example
  • 我解决了我的问题。我希望现在更清楚了。我为造成的误解道歉。谢谢
  • use text, not images/links, for text--including tables & ERDs. 解释或引用其他文本。仅将图像用于无法表达为文本或增强文本的内容。无法搜索或剪切和粘贴图像。在图像中包含图例/键和说明。 (minimal reproducible example 是剪切 & 粘贴 & 可运行代码;具有所需和实际输出的示例输入(包括逐字错误消息);标签和明确的规范和解释。) PS 你仍然没有说你想要什么表。另外,找出什么是标量子查询。
  • (显然--)这是一个常见问题。在考虑发布之前,请始终在谷歌上搜索任何错误消息以及您的问题/问题/目标的许多清晰、简洁和准确的措辞,包括和不包括您的特定字符串/名称;阅读许多答案。如果您发布问题,请使用一个短语作为标题。请参阅How to Ask 和投票箭头鼠标悬停文本。 PS 目前尚不清楚您提供的特定示例查询和/或它们的类似结构有多少细节是您想问的问题的一部分。例如,也许你只关心 (select ...) + (select ...)。

标签: mysql


【解决方案1】:

每个表达式:

column_1 = 5

column_2 = 5

计算为 0 或 1(假或真)。
所以你可以像这样使用它们:

SELECT SUM(column_1 = 5) + SUM(column_2 = 5) AS result FROM table

请参阅demo
结果:

| result |
| ------ |
| 5      |

【讨论】:

  • 我需要两个计数的总和
【解决方案2】:

您可以使用子查询:

SELECT sub1.result_1 + sub2.result_2 FROM (
SELECT COUNT(column_1) AS result_1 FROM table WHERE column_1 = 5) as sub1, (
SELECT COUNT(column_2) AS result_2 FROM table WHERE column_2 = 5) as sub2

【讨论】:

  • 就是这样。谢谢!
  • @Midhat & PatrickPorto 交叉连接(逗号)是毫无意义的复杂操作,只需选择标量子查询的总和即可。查看此问题的许多重复项的答案。
猜你喜欢
  • 1970-01-01
  • 2018-07-16
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-02
相关资源
最近更新 更多