首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL count(*) with having

SQL count(*) with having
EN

Stack Overflow用户
提问于 2021-06-02 16:33:20
回答 1查看 63关注 0票数 0

我在oracle上有这个问题。

代码语言:javascript
复制
SELECT CBG.refs, CBG.cuo, CBG.date, CBG.nber, CG.date, CBG.conso, 
                (SELECT COUNT(*) 
                    FROM MAD.VIN CBV
                    WHERE CBV.CUO = CBG.CUO AND 
                        CBV.NBER = CBG.NBER AND
                        CBV.DATE = CBG.DATE AND
                        CBV.REFS = CBG.REFS 
                        GROUP BY CUO , DATE , NBER , REFS )  AS COUNTS ,
                CBG.CONSO_CONCESS AS CONCESS
                FROM MAD.GEN CBG, MAD.CAR_GEN CG
                WHERE CBG.cuo = CG.cuo AND 
                CBG.CONSO_DATE IS NOT NULL AND
                CBG.date = CG.date AND 
                CBG.nber = CG.nber
                HAVING COUNTS > 0;

当我运行这个sql查询时,它给我一个错误:无效的标识符计数。

只有当count大于给定的参数时,我们才能获得结果?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-02 16:45:15

与在MySQL中不同,在Oracle中,我们不能在HAVING子句中引用别名(别名只能在ORDER BY子句中引用)。一种解决方法是将当前逻辑放入CTE中,然后对其进行过滤。

代码语言:javascript
复制
WITH cte AS (
     SELECT CBG.refs, CBG.cuo, CBG.date AS cbg_date, CBG.nber, CG.date AS cg_date,
            CBG.conso,
            (SELECT COUNT(*) 
             FROM MAD.VIN CBV
             WHERE CBV.CUO = CBG.CUO AND 
                   CBV.NBER = CBG.NBER AND
                   CBV.DATE = CBG.DATE AND
                   CBV.REFS = CBG.REFS 
            GROUP BY CUO, DATE, NBER, REFS) AS COUNTS,
            CBG.CONSO_CONCESS AS CONCESS
    FROM MAD.GEN CBG
    INNER JOIN MAD.CAR_GEN CG
        ON CBG.cuo = CG.cuo AND 
           CBG.date = CG.date AND 
           CBG.nber = CG.nber
    WHERE CBG.CONSO_DATE IS NOT NULL
)

SELECT refs, cuo, cbg_date, nber, cg_date, conso, COUNTS, CONCESS
FROM cte
WHERE COUNTS > 0;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67801646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档