sql - 删除 SQL 结果中的 SUM 列

标签 sql postgresql

SELECT sum(number1), sum(number2),
CASE
  WHEN SUM(number1) % 2 = 1 THEN MIN(number1)
  ELSE MAX(number1)
END AS number1,
CASE
  WHEN SUM(number2) % 2 = 1 THEN MIN(number2)
  ELSE MAX(number2)
END AS number2
FROM numbers

上面的代码返回了正确的数字,但是显示了一个额外的列。

有什么想法吗?

输出是这样的:

sum | number1 | number2 |
123 |    1    |   2     |

output image

我的目标是如果 number1 的 SUM 是奇数,那么我将在 number1 中显示 MIN 数字 ELSE MAX 数字 1,与 number2 相同。但我只需要显示 2 列(number1 和 number2)

我想知道为什么显示 sum 列以及如何删除它。

感谢任何类型的输出!

最佳答案

SELECT 之后的每一列都会出现在您的结果中。如果您不希望它们出现,则不要将它们包含在列表中。

在您发布的 SQL 中,您可以只删除列表中的前两列,只留下两个 CASE 语句。

SELECT 
CASE
  WHEN SUM(number1) % 2 = 1 THEN MIN(number1)
  ELSE MAX(number1)
END AS number1,
CASE
  WHEN SUM(number2) % 2 = 1 THEN MIN(number2)
  ELSE MAX(number2)
END AS number2
FROM numbers

关于sql - 删除 SQL 结果中的 SUM 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58722454/

相关文章:

database - 创建 postgres 数据库的 docker 镜像?

mysql - SQL 脚本未返回正确的表

mysql - 如何同时从同一个表中选择从 SQL 表中删除行

mysql - MySQL 中的事务性 ALTER 语句

postgresql - TypeORM 通过 json 属性查询具有 jsonb 列的实体

sql - 在 PostgreSQL 中缩写列表

python - Postgres JSONB - 查询所有根键

SQL - 为每个匹配给定条件的用户选择最后一个事件

MySql Join 给我留下了一张空表

postgresql - 匿名函数postgresql的返回值