You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Oracle SQL查询仅对应单一类型的公司

Oracle 12C 查询仅对应唯一类型公司的SQL方案

需求说明

筛选出所有仅关联唯一一种公司类型的企业记录。

实现方案

方案1:分组聚合实现(兼容性最好,性能最优)

假设你的表名为company_info,对应字段为company_name(公司名称)、company_type(公司类型),SQL如下:

SELECT 
  company_name,
  MAX(company_type) AS company_type
FROM company_info
GROUP BY company_name
HAVING COUNT(DISTINCT company_type) = 1;

逻辑说明:按公司名称分组,统计每个公司名下不同类型的数量,仅保留数量为1的分组,此时分组内的类型唯一,用MAX/MIN即可取出对应的类型值。

方案2:窗口函数实现(适合需要保留原始行数据的场景)

如果你需要输出符合条件的所有原始行而非聚合结果,可以使用Oracle 12C支持的窗口函数实现:

SELECT company_name, company_type
FROM (
  SELECT
    company_name,
    company_type,
    COUNT(DISTINCT company_type) OVER(PARTITION BY company_name) AS type_count
  FROM company_info
) tmp
WHERE type_count = 1;

如果需要去重仅保留每个公司的一条记录,在外层追加GROUP BY company_name, company_type即可。

注意事项

  • 请将SQL中的表名、字段名替换为你实际业务表的对应名称
  • 若company_type字段允许NULL值且需要将NULL算作一种独立类型,可将COUNT(DISTINCT company_type)替换为COUNT(DISTINCT NVL(company_type, '自定义占位符')),占位符需确保不会出现在正常的类型取值中。

内容的提问来源于stack exchange,提问作者SwapnaSubham Das

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 20:24:00