首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >子查询-查找具有不同ID - Oracle的副本

子查询-查找具有不同ID - Oracle的副本
EN

Stack Overflow用户
提问于 2019-12-06 20:45:48
回答 2查看 70关注 0票数 2

我有一张桌子,上面有牌照号码的列表。许可号分配给IDID可以具有相同号码的多个许可证(有些是过期的或不同的类型等等)。

一些牌照号码的前面有一个'B‘。如果我要删除'B‘,我想知道有多少许可证#被复制到不同的ID。

到目前为止,我已经去除了B和得到的计数,但现在我需要更进一步,只需要查询什么是重复之间的ID。

SQL

代码语言:javascript
复制
SELECT 
COUNT(*), TININDIV_IS_NUMBER as ID,
CASE
    WHEN SUBSTR (LICENSE_NO, 1, 1) <> 'B'
    THEN LICENSE_NO
    ELSE SUBSTR(LICENSE_NO, 2, LENGTH(LICENSE_NO)) 
END AS LICENCSE_NO
FROM BF_CERTIFICATE 
GROUP BY TININDIV_IS_NUMBER, LICENSE_NO 

输出示例

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-06 20:49:33

,我想知道有多少许可证#被复制到不同的ID。

您可以获得许可证#s的列表如下:

代码语言:javascript
复制
SELECT (CASE WHEN SUBSTR (LICENSE_NO, 1, 1) <> 'B'
             THEN LICENSE_NO
             ELSE SUBSTR(LICENSE_NO, 2, LENGTH(LICENSE_NO)) 
        END) AS LICENCSE_NO,
       COUNT(DISTINCT TININDIV_IS_NUMBER)
FROM BF_CERTIFICATE 
GROUP BY (CASE WHEN SUBSTR (LICENSE_NO, 1, 1) <> 'B'
               THEN LICENSE_NO
               ELSE SUBSTR(LICENSE_NO, 2, LENGTH(LICENSE_NO)) 
          END) 
HAVING COUNT(DISTINCT TININDIV_IS_NUMBER) >= 2;

注意:CASE表达式需要在GROUP BY中重复,因为GROUP BY子句中不识别列别名。

如果您想要实际的计数,那么只需使用上面的子查询并在外部查询中放置一个count(*)

票数 0
EN

Stack Overflow用户

发布于 2019-12-06 20:49:13

我想知道有多少许可证#被复制到不同的ID

您可以使用两个级别的聚合来获取重复项的计数:

代码语言:javascript
复制
select count(*)
from (
    select 1
    from bf_certificate 
    group by case
        when substr (license_no, 1, 1) <> 'b'
        then license_no
        else substr(license_no, 2, length(license_no)) 
    end
    having count(*) = 1
) t

如果您想要重复的许可证号码列表,那么一个级别的聚合就足够了:

代码语言:javascript
复制
select 
    case
        when substr (license_no, 1, 1) <> 'b'
        then license_no
        else substr(license_no, 2, length(license_no)) 
    end license_no,
    count(*)
from bf_certificate 
group by case
    when substr (license_no, 1, 1) <> 'b'
    then license_no
    else substr(license_no, 2, length(license_no)) 
end
having count(*) = 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59220107

复制
相关文章

相似问题

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