loading..
Русский    English
16:34
листать

Упражнение (-2) стр. 3

Решение 3.6.3. Использование для решения задачи соединения вместо коррелирующего подзапроса.

Консоль
Выполнить
  1. SELECT a.country, a.numShips AS Qty, MIN(launched) AS Year
  2. FROM (SELECT country, COUNT(*) AS numShips, launched
  3. FROM Classes INNER JOIN
  4. Ships ON Classes.class = Ships.class
  5. GROUP BY country, launched
  6. ) AS a INNER JOIN
  7. (SELECT a.country, MAX(a.numShips) AS Qty
  8. FROM (SELECT country, COUNT(*) AS numShips
  9. FROM Classes INNER JOIN
  10. Ships ON Classes.class = Ships.class
  11. GROUP BY country, launched
  12. ) AS a
  13. GROUP BY country) AS b
  14. ON a.country = b.country AND a.numShips = b.Qty
  15. GROUP BY a.country, a.numShips;

В предложении FROM выполняется внутреннее эквисоединение по стране и числу кораблей двух подзапросов. В первом подзапросе определяется страна и число кораблей, спущенных на воду в этой стране в каждом году. Второй подзапрос содержит аналогичный запрос в предложении FROM, выбирая из него только ту пару {страна, число кораблей}, которая содержит максимальное число кораблей, спущенное на воду в течение одного года.

В результате этого соединения пара {страна, максимальное число кораблей} дополняется годом, в котором такое число кораблей было спущено на воду. Наконец, выполняется аналогичная решению 3.6.2 группировка, чтобы определить минимальный год, если максимум достигался несколько раз для одной и той же страны.

Bookmark and Share
Страницы: 1 2 3 4
Тэги:
ALL AND AUTO_INCREMENT AVG battles CASE CAST CHAR CHARINDEX CHECK classes COALESCE CONSTRAINT Convert COUNT CROSS APPLY CTE DATEADD DATEDIFF DATENAME DATEPART DATETIME DDL DEFAULT DELETE DISTINCT DML EXCEPT EXISTS EXTRACT FOREIGN KEY FROM FULL JOIN GROUP BY Guadalcanal HAVING IDENTITY IN INFORMATION_SCHEMA INNER JOIN insert INTERSECT IS NOT NULL IS NULL ISNULL laptop LEFT LEFT OUTER JOIN LEN maker Больше тэгов
Учебник обновлялся
месяц назад
©SQL-EX,2008 [Развитие] [Связь] [О проекте] [Ссылки] [Team]
Перепечатка материалов сайта возможна только с разрешения автора.