An Entity of Type: Thing, from Named Graph: http://dbpedia.org, within Data Space: dbpedia.org

In a SQL database query, a correlated subquery (also known as a synchronized subquery) is a subquery (a query nested inside another query) that uses values from the outer query. Because the subquery may be evaluated once for each row processed by the outer query, it can be slow. Here is an example for a typical correlated subquery. In this example, the objective is 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);

Property Value
dbo:abstract
  • In a SQL database query, a correlated subquery (also known as a synchronized subquery) is a subquery (a query nested inside another query) that uses values from the outer query. Because the subquery may be evaluated once for each row processed by the outer query, it can be slow. Here is an example for a typical correlated subquery. In this example, the objective is 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); In the above query the outer query is SELECT employee_number, name FROM employees emp WHERE salary > ... and the inner query (the correlated subquery) is SELECT AVG(salary) FROM employees WHERE department = emp.department In the above nested query the inner query has to be re-executed for each employee. (A sufficiently smart implementation may cache the inner query's result on a department-by-department basis, but even in the best case the inner query must be executed once per department.) Correlated subqueries may appear elsewhere besides the WHERE clause; for example, this query uses a correlated subquery in the SELECT clause to print the entire list of employees alongside the average salary for each employee's department. Again, because the subquery is correlated with a column of the outer query, it must be re-executed for each row of the result. SELECT employee_number, name, (SELECT AVG(salary) FROM employees WHERE department = emp.department) AS department_average FROM employees emp (en)
  • У запитах до баз даних SQL, корельований підзапит (також відомий як синхронізований підзапит) — це підзапит (запит, вкладений усередині іншого запиту), який використовує значення з зовнішнього запиту. Оскільки підзапит може бути обчислено один раз для кожного рядка, обробленого зовнішнім запитом, він може бути неефективним. Нижче наведено приклад типового корельованого підзапиту. Метою даного прикладу є знайти всіх співробітників, заробітна платня яких вища за середню в їхньому відділі. SELECT employee_number, nameFROM employees AS empWHERE salary > (SELECT AVG(salary) FROM employees WHERE department = emp.department); У наведеному вище прикладі зовнішнім запитом є SELECT employee_number, nameFROM employees AS empWHERE salary > ... а внутрішнім запитом (корельованим підзапитом) є SELECT AVG(salary)FROM employeesWHERE department = emp.department У наведеному вище вкладеному запиті внутрішній запит повинен виконуватися повторно для кожного працівника (досить розумна реалізація може результат внутрішнього запиту на основі відділ-по-відділу, але навіть у найкращому випадку внутрішній запит повинен виконуватися один раз для кожного відділу). Корельовані підзапити можуть з'являтися не тільки в операторі WHERE; наприклад, такий запит використовує корельований підзапит в операторі SELECT, щоб надрукувати весь список співробітників разом із середньою заробітною платнею для кожного відділу. Знову ж таки, оскільки підзапит корелюється з колонкою зовнішнього запиту, він повинен повторно виконатися для кожного рядка результату. SELECT employee_number, name, (SELECT AVG(salary) FROM employees WHERE department = emp.department) AS department_averageFROM employees AS emp; (uk)
dbo:wikiPageExternalLink
dbo:wikiPageID
  • 20389371 (xsd:integer)
dbo:wikiPageLength
  • 5353 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID
  • 1122714146 (xsd:integer)
dbo:wikiPageWikiLink
dbp:wikiPageUsesTemplate
dcterms:subject
gold:hypernym
rdfs:comment
  • In a SQL database query, a correlated subquery (also known as a synchronized subquery) is a subquery (a query nested inside another query) that uses values from the outer query. Because the subquery may be evaluated once for each row processed by the outer query, it can be slow. Here is an example for a typical correlated subquery. In this example, the objective is 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); (en)
  • У запитах до баз даних SQL, корельований підзапит (також відомий як синхронізований підзапит) — це підзапит (запит, вкладений усередині іншого запиту), який використовує значення з зовнішнього запиту. Оскільки підзапит може бути обчислено один раз для кожного рядка, обробленого зовнішнім запитом, він може бути неефективним. Нижче наведено приклад типового корельованого підзапиту. Метою даного прикладу є знайти всіх співробітників, заробітна платня яких вища за середню в їхньому відділі. У наведеному вище прикладі зовнішнім запитом є а внутрішнім запитом (корельованим підзапитом) є (uk)
rdfs:label
  • Correlated subquery (en)
  • Корельований підзапит (uk)
owl:sameAs
prov:wasDerivedFrom
foaf:isPrimaryTopicOf
is dbo:wikiPageWikiLink of
is foaf:primaryTopic of
Powered by OpenLink Virtuoso    This material is Open Knowledge     W3C Semantic Web Technology     This material is Open Knowledge    Valid XHTML + RDFa
This content was extracted from Wikipedia and is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License