mysql - SELECT SUM(1) FROM ( SELECT '0' as R FROM dual UNION ALL SELECT '1' as R FROM dual )

标签 mysql sql oracle

为什么下面的查询给出值 2 而不是我期望的 1

SELECT SUM(1) FROM (
SELECT  '0' as R FROM dual
UNION 
SELECT  '1' as R FROM dual
)

但是这个查询满足预期?

SELECT SUM(R) FROM (
SELECT  '0' as R FROM dual
UNION 
SELECT  '1' as R FROM dual
)

最佳答案

因为在第一个查询中,您对选择中的任何行的每次出现求和 1,而对于查询 1,您对选择中的每一行的“R”值求和。

关于mysql - SELECT SUM(1) FROM ( SELECT '0' as R FROM dual UNION ALL SELECT '1' as R FROM dual ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41241812/

相关文章:

mysql - 无法将新数据库连接转换为旧数据库连接

php - LocalHost 数据库不存储查询?

sql - 在 sql 中从同一个表搜索两次总是返回排名较高的值

Mysql全文索引对完全匹配和部分匹配给出相同的分数,为什么?

HAVING 子句中的 Oracle PL/SQL 变量

python - 使用 sqlalchemy 在加密端口上连接到 Oracle

mysql - 如何在 sails 中使用 where 子句和 'or pairs' 子句进行查询

java - 从数据库中获取数据并将其显示在android应用程序上

sql - 在SQLite中评估连续的行对

oracle - PL/SQL : Execute procedure in another procedure