带有子查询的ORACLE单组功能错误[关闭]
Posted
技术标签:
【中文标题】带有子查询的ORACLE单组功能错误[关闭]【英文标题】:ORACLE SINGLE GROUP FUNCTION ERROR WITH SUBQUERY [closed] 【发布时间】:2018-12-24 08:52:10 【问题描述】:我需要帮助
我想像这样执行查询
SELECT COUNT(*),
(SELECT DISTINCT(EMAIL)
FROM TABLE2
WHERE ID='1')
FROM TABLE1
WHERE ID='1'
错误:
ORA-00937: 不是单组群函数
OK Lookup Oracle Documentation ...复制运行时异常日志
有什么办法吗?
【问题讨论】:
样本数据和期望的结果会有所帮助。 对于你真正想要的东西至少有两种解释(见答案)。虽然很清楚您收到错误的原因,但完全不清楚您希望从查询中得到什么。 【参考方案1】:我会避免在SELECT
语句中使用子查询;他们很少做好的事情,可能会导致性能不佳并且可以 - 通常 - 被重写为
select count(*), t2.email
from table1 t1 join table2 t2 on t2.id = t.1.id
group by t2.email
【讨论】:
【参考方案2】:你似乎想要:
SELECT (SELECT COUNT(*) FROM TABLE1 t1 WHERE t1.ID = x.ID),
(SELECT COUNT(DISTINCT t2.EMAIL) FROM TABLE2 t2 WHERE t2.ID = x.ID)
FROM (SELECT 1 as ID FROM DUAL) x
【讨论】:
以上是关于带有子查询的ORACLE单组功能错误[关闭]的主要内容,如果未能解决你的问题,请参考以下文章