1

SQL Developer で SET 演算子を使用してカウント結果を取得しようとしています。

「table_name1」にはあるが「table_name2」には含まれていない「attribute1」の数を見つける必要があります

基本的に、次のクエリから得られる結果が必要ですが、SET 演算子を使用しています。

SELECT count(distinct <attribute1>)
FROM <table_name1>
WHERE <attribute1> IS NOT (SELECT <attribute1>
                           FROM <table_name2>);

誰でも私を助けてもらえますか?

4

3 に答える 3

0

以下の解決策を試してください:

SELECT count(distinct <attribute1>)
FROM <table_name1>
WHERE <attribute1> NOT IN (SELECT <attribute1>
                           FROM <table_name2>);

これがお役に立てば幸いです。

于 2016-10-06T05:49:25.993 に答える
0

セット演算子を使用する必要がある場合は、次を使用してこれを解決できますMINUS

SELECT COUNT(*)                      -- use COUNT(DISTINCT attribute1) to avoid
FROM                                 -- duplicates
(
    SELECT attribute1
    FROM table_name1
    MINUS
    SELECT attribute1
    FROM table_name2
) t

LEFT JOINただし、概念的に単純なので、おそらくここで a を使用します。

SELECT COUNT(DISTINCT t1.attribute1) -- replace with COUNT(*) to count duplicates
FROM table_name1 t1
LEFT JOIN table_name2 t2
    ON t1.attribute1 = t2.attribute1
WHERE t2.attribute1 IS NULL          -- indicates that attribute does NOT appear in
                                     -- the second table
于 2016-10-06T05:49:56.973 に答える
0
SELECT COUNT(<attribute1>)
FROM <table_name1>
WHERE <attribute1> MINUS (SELECT <attribute1>
                           FROM <table_name2>);

https://docs.oracle.com/cd/B19306_01/server.102/b14200/operators005.htm

更新された回答

SELECT COUNT(X.id_num)
(SELECT id_num
FROM Tree 
WHERE id_num)
MINUS 
(SELECT id_num 
FROM Bird) AS X
于 2016-10-06T05:50:17.343 に答える