-1

私は2つのテーブルを持っています:

従業員

emp_id, emp_name, emp_dept, emp_sal

1         A           A         1

2         B           B         2

3         C           C         3

4         D           D         4

トライアル

emp_id, random

1          X

1          Y

2          Z

3          A

4          B

Employee と Trial の Natural Join を実行すると、

私は結果を得るでしょう:

emp_id, emp_name, emp_dept, emp_sal random

1         A           A         1      X

1         A           A         1      Y

2         B           B         2      Z

3         C           C         3      A

4         D           D         4      B

前述の Natural Join を実行して、組織内の部門数を 1 回のクエリでカウントしたい場合、どうすればそれを実行できますか?

select count(emp_dept) from (select distinct(emp_dept) from employee natural join trial) as T2;

動作しますが、上記を行う別の方法があるかどうか疑問に思っていますか?

ノート:

自然結合は必須です!

次のコードの両方を試しましたが、惨めに失敗しました。:P

  1. select count(emp_dept) from (select (emp_dept) from employee natural join trial) as T2; 実際の答えは 4 であるのに、5 をくれました。

  2. select count(select distinct(emp_dept) as emp_date from (select * from employee natural join trial) as T2) from T2;

  3. select count(select distinct(emp_dept) as emp_date from (select * from employee natural join trial) as T2) from (select * from employee natural join trial) as T3);

^ 上記の 3 行のコードで何が間違っていましたか?

前もって感謝します!:)

4

1 に答える 1

0

単に COUNT(DISTINCT .... ) を実行できませんか? このような:-

SELECT COUNT(DISTINCT emp_dept) 
FROM employee 
NATURAL JOIN trial
于 2013-05-02T09:15:10.410 に答える