我正在寻找我的查询只输出 3 列中的 3 个值。第一列只是使用不同列(以删除重复项)显示数据库中不同 ID 的总数。
第二列是显示所有不同的 ID,其中值是“true”
然后第三列只是显示“测试 ID”的列,以指示该行代表测试 ID。
但我收到以下错误:
错误:FROM 中的子查询必须有别名
第 2 行:(SELECT count(*) AS "Active_IDs" from (select distin...
我可能错过了一些明显的事情,或者没有做正确的事情。
这是我正在使用的查询:
select count(*) AS "Total_Inventory" from (select distinct "Name, "Location", "Interactivity" from idtable) totalinv ,
(SELECT count(*) AS "Active_IDs" from (select distinct "Name", "Location", "Interactivity",
from idtable where "Active" = 'true') totalact), 'Test' AS "ID Type"
from npid_it
sql fiddle
乍一看并不明显,但你的陈述的结构是
该子句中的第一个子查询
from
有一个别名 (totalinv
),from 子句中的第二个子查询缺少一个(我的注释指向的位置),其余的将是进一步的语法错误。select
您需要做的是将三(两个)顶级选择语句中的每一个包含在自己的括号中,并添加一个不带子句的顶级from
:有关完全摆脱子查询的好方法,请参阅@RomanPekar 的答案中的简化。