我正在尝试使用Group by和Having子句使用Sample子句。 我的要求是获得一个只有一条记录的公司ID,我尝试了很多方法,这是我尝试过的方法之一。
With TESTA AS(
select TA.COMPANY_ID from(
select t1.COMPANY_ID from Table11 t1
where t1.COMPANY_ID in (select t2.COMPANY_ID from Table22 t2)
group by t1.COMPANY_ID having count(t1.COMPANY_ID)=1)TA )
select * FROM TESTA Sample(1);
当我执行上述查询时,它抛出以下错误。
ORA-01446:无法从DISTINCT中选择ROWID或对其进行采样, GROUP BY等 01446. 00000 - "无法从DISTINCT,GROUP BY等视图中选择ROWID或采样。" *原因:
*操作:
但是,当我执行以下查询时,我得到的结果却不满足我的要求。
select COMPANY_ID from Table11 Sample(10)
where COMPANY_ID in (select company_id from Table22 )
Group by COMPANY_ID HAVING Count(COMPANY_ID)=1
它正在执行所有可能的记录,有人可以帮我解决这个问题。