gpt4 book ai didi

sql - Oracle plsql 如何选择两个计数是否相等

转载 作者:行者123 更新时间:2023-12-04 21:19:14 24 4
gpt4 key购买 nike

我希望从表中选择数据,当且仅当唯一的手机号码等于表中的总行数(即我们没有两个不同的人使用相同的手机号码,和/或我们没有在手机号码列中有一行为空值),其中有一个特定的区号,例如4817。

目前,我有以下查询(不适用于 AND 约束)。有没有人有关于如何做到这一点的任何提示?

SELECT  
MOB_NUM AS MOBILE_NUMBER,
NAME AS NAME,
AREA_CODE AS AREA_CODE

FROM DB_PHONEBOOK DBP
WHERE DBP.AREA_CODE = 4817
AND (COUNT(DISTINCT DBP.MOB_NUM ) = COUNT(DBP.MOB_NUM))

最佳答案

使用 Where 过滤单个行/记录子句,其中像 count/Sum/Average/.. 这样的组使用 Having 过滤条款

如果没有错,你正在寻找这样的东西

SELECT DBP.MOB_NUM   AS MOBILE_NUMBER,
DBP.NAME AS NAME,
DBP.AREA_CODE AS AREA_CODE
FROM DB_PHONEBOOK DBP
INNER JOIN (SELECT MOB_NUM
FROM DB_PHONEBOOK DBP
WHERE DBP.AREA_CODE = 4817
GROUP BY MOB_NUM
HAVING Count(DISTINCT DBP.MOB_NUM) = Count(DBP.MOB_NUM)) C_DBP
ON DBP.MOB_NUM = C_DBP.MOB_NUM
WHERE DBP.AREA_CODE = 4817

关于sql - Oracle plsql 如何选择两个计数是否相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44964010/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com