サブクエリと相関サブクエリの違い

次のようなSQLクエリは、通常のクエリなのか、それともCorrelated Subqueryなのでしょうか?

SELECT UserID,
       FirstName,
       LastName,
       DOB,
       GFName,
       GLName,
       LoginName,
       LoginEffectiveDate,
       LoginExpiryDate,
       Password,
       Email,
       ReportingTo,
       Mobile,
       CommunicationPreference,
       IsActive
FROM   (SELECT row_number() OVER (ORDER BY FirstName) AS Row,
               UserID,
               FirstName,
               LastName,
               DOB,
               GFName,
               GLName,
               LoginName,
               LoginEffectiveDate,
               LoginExpiryDate,
               Password,
               Email,
               ReportingTo,
               Mobile,
               CommunicationPreference,
               IsActive
        FROM   DivakarUserRegistration)  T

また、両者の違いについても教えてください。

上記の例はCo-related Sub-Queryではありません。つまり、FROM句の中のサブクエリーです。

Corel化されたサブクエリは、その中で親(メインクエリ)のテーブルを参照する必要があります。例えば、Corelated Sub-queryでN番目の最高給与を見つける。


SELECT Salary 
FROM Employee E1
WHERE N-1 = (SELECT COUNT(*)
             FROM Employee E2
             WHERE E1.salary 
解説 (4)
ソリューション

相関副問い合わせは、外側の問い合わせの値を使用する副問い合わせです。この場合、内側のクエリは外側のクエリの各行に対して実行されなければなりません。

例はこちら http://en.wikipedia.org/wiki/Correlated_subquery

単純副問い合わせは、外側の問い合わせからの値を使用せず、一度だけ計算されます。

SELECT id, first_name 
FROM student_details 
WHERE id IN (SELECT student_id
FROM student_subjects 
WHERE subject= 'Science'); 

関連するサブクエリーの例 -

Query To Find all employees whose salary is above average for their department

 SELECT employee_number, name
       FROM employees emp
       WHERE salary > (
         SELECT AVG(salary)
           FROM employees
           WHERE department = emp.department);
解説 (7)

以下の説明があなたの助けになると思います。 これらの違いを説明します。 関連するサブクエリ」とは、メインのクエリ(外側のクエリ)から参照される内側のクエリで、内側のクエリが繰り返し実行されていると考えられるものです。

非相関副問い合わせ」とは、外部の問い合わせから独立した副問い合わせで、外部のメインの問い合わせに頼らずに単独で実行できるものです。

単純な副問い合わせ "は外部の問い合わせに依存しません。

解説 (1)