如何使用ROW-COUNT来检查一个部件是否属于多个源系统?

问题描述 投票:0回答:3

我有两个查询结果如下:

select SOURCE_SYSTEM_ID, PARENT_PART_KEY_ID
from Master
where PARENT_PART_KEY_ID = 7619088

SOURCE_SYSTEM_ID    PARENT_PART_KEY_ID
90                  7619088
90                  7619088
90                  7619088
90                  7619088
90                  7619088
90                  7619088
90                  7619088
90                  7619088
1                   7619088
1                   7619088
90                  7619088
90                  7619088
90                  7619088

select SOURCE_SYSTEM_ID, PARENT_PART_KEY_ID
from Master
 where PARENT_PART_KEY_ID = 7369179

SOURCE_SYSTEM_ID    PARENT_PART_KEY_ID
1                   7369179
1                   7369179
1                   7369179
1                   7369179
1                   7369179
1                   7369179
1                   7369179
1                   7369179
1                   7369179
1                   7369179
1                   7369179

现在我想知道PARENT_PART_KEY_ID是否来自多个SOURCE_SYSTEM?所以基于这一点,我必须把条件。

那么如何使用行计数来检查PARENT_PART_KEY_ID是否属于一个SOURCE_SYSTEM_ID或多个SOURCE_SYSTEM_ID?

sql oracle
3个回答
0
投票

你可以使用count()DISTINCT

SELECT count(DISTINCT source_system_id) number_of_sources
       FROM master
       WHERE parent_part_key_id = 7369179;

0
投票

你可以使用count(*)获得相关来源的数量。

select parent_part_key_id,count(*) from master group by parent_part_key_id

如果想获取只有一个source_system_id的parent_part_key_id,那么它可以包含在'having'条件中

select parent_part_key_id,count(*) from master group by parent_part_key_id having count(source_system_id)=1

不是强制使用rowcount ...我猜...


0
投票

使用下面的row_count可以接受,但你可以用最好的方式...我想这个示例代码是可用的:

With t
As (
SELECT 
ROW_NUMBER() OVER(PARTITION BY PARENT_PART_KEY_ID ORDER BY SOURCE_SYSTEM_ID ASC) 
AS Rownum, PARENT_PART_KEY_ID, SOURCE_SYSTEM_ID
FROM [master] --master is table name
Group by PARENT_PART_KEY_ID, SOURCE_SYSTEM_ID)

Select * from t --where rownum =1 --you can use 'where' for find first or end of row in you data

如果您不想使用CTE,可以使用select然后在临时表中插入结果然后使用它们。

© www.soinside.com 2019 - 2024. All rights reserved.