<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://iu5bmstu.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=195.19.34.135</id>
	<title>Кафедра ИУ5 МГТУ им. Н.Э.Баумана, студенческое сообщество - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://iu5bmstu.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=195.19.34.135"/>
	<link rel="alternate" type="text/html" href="https://iu5bmstu.ru/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/195.19.34.135"/>
	<updated>2026-04-30T19:58:45Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://iu5bmstu.ru/index.php?title=SQL-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D1%8B_%D0%BA_%D1%8D%D0%BA%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D1%83_%D0%BF%D0%BE_%D0%A1%D0%9F%D0%90%D0%A1%D0%9E%D0%98_(10_%D1%81%D0%B5%D0%BC%D0%B5%D1%81%D1%82%D1%80)&amp;diff=3680</id>
		<title>SQL-запросы к экзамену по СПАСОИ (10 семестр)</title>
		<link rel="alternate" type="text/html" href="https://iu5bmstu.ru/index.php?title=SQL-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D1%8B_%D0%BA_%D1%8D%D0%BA%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D1%83_%D0%BF%D0%BE_%D0%A1%D0%9F%D0%90%D0%A1%D0%9E%D0%98_(10_%D1%81%D0%B5%D0%BC%D0%B5%D1%81%D1%82%D1%80)&amp;diff=3680"/>
		<updated>2013-06-05T15:04:40Z</updated>

		<summary type="html">&lt;p&gt;195.19.34.135: /* Билет 11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right; clear:both; margin-right:1.0em;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Билет экзамена по [[:Категория:Структурное проектирование АСОИ (10 семестр) | СПАСОИ]] состоит из двух частей:&lt;br /&gt;
# теория;&lt;br /&gt;
# SQL-запрос.&lt;br /&gt;
&lt;br /&gt;
На этой странице собраны все сформированные запросы по билетам.&lt;br /&gt;
&lt;br /&gt;
== Схема БД ==&lt;br /&gt;
&lt;br /&gt;
Схема БД используется всё [[СПАСОИ_(10)_-_Лекция_№8_-_SQL#Некоторые возможности языка SQL | та же]], что была в прошлом семестре и на лекциях.&lt;br /&gt;
&lt;br /&gt;
Для написания запросов и проверки их выполнения создана БД в СУБД [http://www.postgresql.org/ PostgreSQL].&lt;br /&gt;
&lt;br /&gt;
Скрипт создания можно загрузить [http://yadi.sk/d/91d_8vGH5UmwP отсюда].&lt;br /&gt;
&lt;br /&gt;
=== Таблицы БД ===&lt;br /&gt;
&lt;br /&gt;
==== Поставщики ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT * FROM spasoi_ekz.s;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  nomer_postavshika |       imya       | sostoyanie |   gorod&lt;br /&gt;
 -------------------+------------------+------------+------------&lt;br /&gt;
  S5                | Мелисандра       |      65000 | Мадрид&lt;br /&gt;
  S2                | Бран Старк       |      60000 | Мурманск&lt;br /&gt;
  S1                | Якен Хгар        |    1500000 | Йокогама&lt;br /&gt;
  S7                | Сирио Форель     |    1500000 | Йокогама&lt;br /&gt;
  S6                | Оша              |      15000 | Москва&lt;br /&gt;
  S4                | Джейме Ланнистер |     750000 | Лондон&lt;br /&gt;
  S3                | Серсея Ланнистер |    1200000 | Лондон&lt;br /&gt;
  S8                | Тирион Ланнистер |       2571 | Манчестер&lt;br /&gt;
  S9                | Иванов           |      35000 | Мытищи&lt;br /&gt;
  S10               | Русе Болтон      |      44444 | Баренцбург&lt;br /&gt;
  S11               | Петров Иван      |      35000 | Мытищи&lt;br /&gt;
  S12               | Петров Пётр      |      35000 | Мытищи&lt;br /&gt;
 (12 rows)&lt;br /&gt;
&lt;br /&gt;
==== Детали ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT * FROM spasoi_ekz.p;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  nomer_detali |       nazvanie       |     cvet      | ves  |      gorod&lt;br /&gt;
 --------------+----------------------+---------------+------+-----------------&lt;br /&gt;
  P9           | подставка            | синий         |  400 | Нижний Новгород&lt;br /&gt;
  P10          | стойка               | синий         | 2000 | Нижний Новгород&lt;br /&gt;
  P11          | абажур               | синий         |  400 | Нижний Новгород&lt;br /&gt;
  P1           | гайка                | чёрный        |   20 | Лондон&lt;br /&gt;
  P2           | шуруп                | чёрный        |    5 | Лондон&lt;br /&gt;
  P3           | ось                  | белый         | 5000 | Эдинбург&lt;br /&gt;
  P4           | зубчатое колесо      | чёрный        |   50 | Эдинбург&lt;br /&gt;
  P6           | транзистор           | коричневый    |    2 | Токио&lt;br /&gt;
  P7           | печатная плата       | зелёный       |  200 | Токио&lt;br /&gt;
  P8           | диод                 | коричневый    |    1 | Токио&lt;br /&gt;
  P12          | универсальная деталь | универсальный |    1 | Париж&lt;br /&gt;
  P13          | уникальная деталь    | уникальный    |    1 | Бостон&lt;br /&gt;
  P14          | болт                 | серый         |   20 | Ижевск&lt;br /&gt;
  P15          | рама                 | красный       | 3000 | Манчестер&lt;br /&gt;
  P16          | колесо               | белый         | 1500 | Манчестер&lt;br /&gt;
  P5           | втулка               | серый         |  350 | Манчестер&lt;br /&gt;
 (16 rows)&lt;br /&gt;
&lt;br /&gt;
==== Изделия ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT * FROM spasoi_ekz.j;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  nomer_izdelia |       nazvanie        |      gorod&lt;br /&gt;
 ---------------+-----------------------+-----------------&lt;br /&gt;
  J1            | автомобиль            | Магнитогорск&lt;br /&gt;
  J2            | процессор             | Зеленоград&lt;br /&gt;
  J3            | торшер                | Нижний Новгород&lt;br /&gt;
  J4            | универсальное изделие | Париж&lt;br /&gt;
  J5            | уникальное изделие    | Бостон&lt;br /&gt;
  J6            | велосипед 01/23       | Манчестер&lt;br /&gt;
  J7            | изделие из болтов     | Челябинск&lt;br /&gt;
  J8            | шкаф                  | Ярославль&lt;br /&gt;
  J9            | рама 02-01            | Череповец&lt;br /&gt;
 (9 rows)&lt;br /&gt;
&lt;br /&gt;
==== Сборки ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT * FROM spasoi_ekz.spj;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  nomer_postavshika | nomer_detali | nomer_izdelia | kolichestvo&lt;br /&gt;
 -------------------+--------------+---------------+-------------&lt;br /&gt;
  S1                | P6           | J2            |          20&lt;br /&gt;
  S1                | P7           | J2            |           5&lt;br /&gt;
  S2                | P1           | J1            |           4&lt;br /&gt;
  S6                | P4           | J1            |           2&lt;br /&gt;
  S6                | P5           | J1            |           6&lt;br /&gt;
  S3                | P9           | J3            |           1&lt;br /&gt;
  S4                | P10          | J3            |           1&lt;br /&gt;
  S5                | P11          | J3            |           1&lt;br /&gt;
  S2                | P4           | J1            |           8&lt;br /&gt;
  S6                | P3           | J1            |          50&lt;br /&gt;
  S7                | P8           | J2            |          25&lt;br /&gt;
  S1                | P12          | J4            |           1&lt;br /&gt;
  S2                | P12          | J4            |           1&lt;br /&gt;
  S3                | P12          | J4            |           1&lt;br /&gt;
  S4                | P12          | J4            |           1&lt;br /&gt;
  S5                | P12          | J4            |           1&lt;br /&gt;
  S7                | P12          | J4            |           1&lt;br /&gt;
  S7                | P2           | J1            |           1&lt;br /&gt;
  S6                | P2           | J1            |           9&lt;br /&gt;
  S6                | P12          | J4            |           7&lt;br /&gt;
  S1                | P13          | J5            |          14&lt;br /&gt;
  S6                | P14          | J1            |        9000&lt;br /&gt;
  S2                | P14          | J1            |           3&lt;br /&gt;
  S6                | P1           | J1            |          12&lt;br /&gt;
  S8                | P15          | J6            |           1&lt;br /&gt;
  S8                | P16          | J6            |           2&lt;br /&gt;
  S3                | P5           | J6            |          10&lt;br /&gt;
  S10               | P2           | J8            |           4&lt;br /&gt;
  S9                | P14          | J8            |          25&lt;br /&gt;
  S8                | P1           | J7            |          16&lt;br /&gt;
  S9                | P14          | J7            |           3&lt;br /&gt;
  S11               | P10          | J3            |           2&lt;br /&gt;
  S12               | P15          | J1            |           3&lt;br /&gt;
  S11               | P11          | J3            |           4&lt;br /&gt;
  S10               | P14          | J9            |           5&lt;br /&gt;
 (35 rows)&lt;br /&gt;
&lt;br /&gt;
== Готовые запросы ==&lt;br /&gt;
&lt;br /&gt;
Всё в процессе написания, потому многие запросы через некоторое время будут переписаны в более короткую и правильную форму.&lt;br /&gt;
&lt;br /&gt;
=== Билет 1 ===&lt;br /&gt;
&lt;br /&gt;
Написать запрос SELECT: выдать номера поставщиков, которые поставляют, по крайней мере, все те детали, которые поставляет поставщик с номером &#039;S2&#039;.&lt;br /&gt;
&lt;br /&gt;
Текст запроса:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT DISTINCT nomer_postavshika&lt;br /&gt;
FROM spasoi_ekz.spj SPJX&lt;br /&gt;
WHERE NOT EXISTS (&lt;br /&gt;
                  SELECT nomer_detali&lt;br /&gt;
                  FROM spasoi_ekz.spj SPJY&lt;br /&gt;
                  WHERE nomer_postavshika = &#039;S2&#039;&lt;br /&gt;
                    AND NOT EXISTS (&lt;br /&gt;
                                    SELECT *&lt;br /&gt;
                                    FROM spasoi_ekz.spj&lt;br /&gt;
                                    WHERE nomer_postavshika = SPJX.nomer_postavshika&lt;br /&gt;
                                      AND nomer_detali = SPJY.nomer_detali&lt;br /&gt;
                                   )&lt;br /&gt;
                 );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
  nomer_postavshika&lt;br /&gt;
 -------------------&lt;br /&gt;
  S6&lt;br /&gt;
  S2&lt;br /&gt;
 (2 rows)&lt;br /&gt;
&lt;br /&gt;
=== Билет 2 ===&lt;br /&gt;
&lt;br /&gt;
Написать запрос SELECT: выдать номера деталей и общее их количество для всех номеров деталей, поставляемых более чем одним поставщиком.&lt;br /&gt;
&lt;br /&gt;
Текст запроса:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT nomer_detali AS &amp;quot;Номер детали&amp;quot;,&lt;br /&gt;
       SUM(kolichestvo) AS &amp;quot;Сколько штук поставляется&amp;quot;,&lt;br /&gt;
       COUNT(DISTINCT nomer_postavshika) AS &amp;quot;Сколько у неё поставщиков&amp;quot;&lt;br /&gt;
FROM spasoi_ekz.spj&lt;br /&gt;
GROUP BY nomer_detali HAVING COUNT(DISTINCT nomer_postavshika) &amp;gt; 1;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
  Номер детали | Сколько штук поставляется | Сколько у неё поставщиков&lt;br /&gt;
 --------------+---------------------------+--------------------------&lt;br /&gt;
  P1           |                        15 |                         2&lt;br /&gt;
  P12          |                         7 |                         7&lt;br /&gt;
  P4           |                        10 |                         2&lt;br /&gt;
 (3 rows)&lt;br /&gt;
&lt;br /&gt;
=== Билет 3 ===&lt;br /&gt;
&lt;br /&gt;
Написать запрос SELECT: выдать номера поставщиков, поставляющих детали с номером &#039;P1&#039; для какого-либо изделия в количестве (в поставке) большим, чем средний объём поставок деталей с номером &#039;P2&#039; для этого изделия.&lt;br /&gt;
&lt;br /&gt;
Текст запроса:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT nomer_postavshika&lt;br /&gt;
FROM (spasoi_ekz.spj SPJ JOIN spasoi_ekz.p P&lt;br /&gt;
                           ON SPJ.nomer_detali = P.nomer_detali&lt;br /&gt;
                              AND P.nomer_detali = &#039;P1&#039;&lt;br /&gt;
     ) A&lt;br /&gt;
WHERE kolichestvo &amp;gt; (&lt;br /&gt;
                     SELECT AVG(kolichestvo)&lt;br /&gt;
                     FROM spasoi_ekz.spj&lt;br /&gt;
                     WHERE nomer_izdelia = A.nomer_izdelia&lt;br /&gt;
                       AND nomer_detali = &#039;P2&#039;&lt;br /&gt;
                    );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;Этот же запрос, но длиннее и нерациональней&#039;&#039;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT DISTINCT nomer_postavshika&lt;br /&gt;
FROM (&lt;br /&gt;
      SELECT *&lt;br /&gt;
      FROM spasoi_ekz.spj&lt;br /&gt;
      WHERE nomer_izdelia IN(&lt;br /&gt;
                             SELECT nomer_izdelia&lt;br /&gt;
                             FROM spasoi_ekz.spj&lt;br /&gt;
                             WHERE nomer_detali = &#039;P1&#039;&lt;br /&gt;
                            )&lt;br /&gt;
        AND nomer_izdelia IN(&lt;br /&gt;
	                     SELECT nomer_izdelia&lt;br /&gt;
	                     FROM spasoi_ekz.spj&lt;br /&gt;
	                     WHERE nomer_detali = &#039;P2&#039;&lt;br /&gt;
	                    )&lt;br /&gt;
     ) A&lt;br /&gt;
WHERE nomer_detali = &#039;P1&#039; AND kolichestvo &amp;gt;&lt;br /&gt;
(&lt;br /&gt;
 SELECT AVG(kolichestvo)&lt;br /&gt;
 FROM (&lt;br /&gt;
       SELECT *&lt;br /&gt;
       FROM spasoi_ekz.spj&lt;br /&gt;
       WHERE nomer_izdelia IN(&lt;br /&gt;
                              SELECT nomer_izdelia&lt;br /&gt;
                              FROM spasoi_ekz.spj&lt;br /&gt;
                              WHERE nomer_detali = &#039;P1&#039;&lt;br /&gt;
                             )&lt;br /&gt;
         AND nomer_izdelia IN(&lt;br /&gt;
                              SELECT nomer_izdelia&lt;br /&gt;
                              FROM spasoi_ekz.spj&lt;br /&gt;
                              WHERE nomer_detali = &#039;P2&#039;&lt;br /&gt;
                             )&lt;br /&gt;
      ) B&lt;br /&gt;
 WHERE nomer_detali = &#039;P2&#039;&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
  nomer_postavshika&lt;br /&gt;
 -------------------&lt;br /&gt;
  S6&lt;br /&gt;
 (1 row)&lt;br /&gt;
&lt;br /&gt;
=== Билет 4 ===&lt;br /&gt;
&lt;br /&gt;
Написать запрос SELECT: выдать номера изделий, для которых детали поставляет только поставщик с номером ‘S1’.&lt;br /&gt;
&lt;br /&gt;
Текст запроса:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT DISTINCT nomer_izdelia&lt;br /&gt;
FROM spasoi_ekz.spj&lt;br /&gt;
WHERE nomer_izdelia IN(&lt;br /&gt;
                       SELECT nomer_izdelia&lt;br /&gt;
                       FROM spasoi_ekz.spj&lt;br /&gt;
                       WHERE nomer_postavshika = &#039;S1&#039;&lt;br /&gt;
                      )&lt;br /&gt;
  AND nomer_izdelia NOT IN(&lt;br /&gt;
                           SELECT nomer_izdelia&lt;br /&gt;
                           FROM spasoi_ekz.spj&lt;br /&gt;
                           WHERE nomer_postavshika != &#039;S1&#039;&lt;br /&gt;
                          );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
  nomer_izdelia&lt;br /&gt;
 ---------------&lt;br /&gt;
  J5&lt;br /&gt;
 (1 row)&lt;br /&gt;
&lt;br /&gt;
=== Билет 5 ===&lt;br /&gt;
&lt;br /&gt;
Написать запрос SELECT: выдать имена поставщиков, поставляющих детали с названием &amp;quot;Болт&amp;quot; в количестве (в поставке) большим, чем средний объём всех поставок деталей с номером &#039;P1&#039;.&lt;br /&gt;
&lt;br /&gt;
Текст запроса:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT imya&lt;br /&gt;
FROM spasoi_ekz.spj SPJ JOIN spasoi_ekz.s S&lt;br /&gt;
                           ON SPJ.nomer_postavshika = S.nomer_postavshika&lt;br /&gt;
                        JOIN spasoi_ekz.p P&lt;br /&gt;
                           ON SPJ.nomer_detali = P.nomer_detali&lt;br /&gt;
                              AND nazvanie = LOWER(&#039;Болт&#039;)&lt;br /&gt;
WHERE kolichestvo &amp;gt; (&lt;br /&gt;
                     SELECT AVG(kolichestvo)&lt;br /&gt;
                     FROM spasoi_ekz.spj SPJ JOIN spasoi_ekz.p P&lt;br /&gt;
                                               ON SPJ.nomer_detali = P.nomer_detali&lt;br /&gt;
                                                  AND SPJ.nomer_detali = &#039;P1&#039;&lt;br /&gt;
                    );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;Этот же запрос, но без JOIN&#039;&#039;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT imya&lt;br /&gt;
FROM spasoi_ekz.s&lt;br /&gt;
WHERE nomer_postavshika IN (&lt;br /&gt;
                            SELECT nomer_postavshika&lt;br /&gt;
                            FROM spasoi_ekz.spj&lt;br /&gt;
                            WHERE nomer_detali = (&lt;br /&gt;
                                                  SELECT nomer_detali&lt;br /&gt;
                                                  FROM spasoi_ekz.p&lt;br /&gt;
                                                  WHERE LOWER(nazvanie) = LOWER(&#039;Болт&#039;)&lt;br /&gt;
                                                 )&lt;br /&gt;
                              AND kolichestvo &amp;gt; (&lt;br /&gt;
                                                 SELECT AVG(kolichestvo)&lt;br /&gt;
                                                 FROM spasoi_ekz.spj&lt;br /&gt;
                                                 WHERE nomer_detali = &#039;P1&#039;&lt;br /&gt;
                                                )&lt;br /&gt;
                           );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
  imya&lt;br /&gt;
 ------&lt;br /&gt;
  Оша&lt;br /&gt;
  Иванов&lt;br /&gt;
 (2 rows)&lt;br /&gt;
&lt;br /&gt;
=== Билет 6 ===&lt;br /&gt;
&lt;br /&gt;
Написать запрос SELECT: выдать названия деталей, поставляемых поставщиком, проживающим в том же городе, где изготавливаются эти детали, для изделия с названием ‘Велосипед 01/23’.&lt;br /&gt;
&lt;br /&gt;
Текст запроса:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT DISTINCT nazvanie&lt;br /&gt;
FROM spasoi_ekz.S S, spasoi_ekz.p P, spasoi_ekz.spj SPJ&lt;br /&gt;
WHERE S.gorod = P.gorod&lt;br /&gt;
  AND P.nomer_detali = SPJ.nomer_detali&lt;br /&gt;
  AND S.nomer_postavshika = SPJ.nomer_postavshika&lt;br /&gt;
  AND nomer_izdelia = (&lt;br /&gt;
                       SELECT nomer_izdelia&lt;br /&gt;
                       FROM spasoi_ekz.j&lt;br /&gt;
                       WHERE nazvanie = LOWER(&#039;Велосипед 01/23&#039;)&lt;br /&gt;
                      );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
  nazvanie&lt;br /&gt;
 ----------&lt;br /&gt;
  рама&lt;br /&gt;
  колесо&lt;br /&gt;
 (2 rows)&lt;br /&gt;
&lt;br /&gt;
=== Билет 7 ===&lt;br /&gt;
&lt;br /&gt;
Написать запрос SELECT: выдать названия изделий, куда входят детали с названием &#039;Болт&#039;, поставляемых поставщиками с именем &#039;Иванов&#039;, в количестве (в поставке) большим, чем средний объём поставок для этого изделия.&lt;br /&gt;
&lt;br /&gt;
Текст запроса:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT nazvanie&lt;br /&gt;
FROM spasoi_ekz.j&lt;br /&gt;
WHERE nomer_izdelia IN (&lt;br /&gt;
                        SELECT nomer_izdelia&lt;br /&gt;
                        FROM (spasoi_ekz.spj SPJ JOIN spasoi_ekz.s S&lt;br /&gt;
                                                   ON SPJ.nomer_postavshika = S.nomer_postavshika&lt;br /&gt;
                                                      AND imya = &#039;Иванов&#039;&lt;br /&gt;
                                                 JOIN spasoi_ekz.p P&lt;br /&gt;
                                                   ON SPJ.nomer_detali = P.nomer_detali&lt;br /&gt;
                                                      AND nazvanie = LOWER(&#039;Болт&#039;)) A&lt;br /&gt;
                        WHERE kolichestvo &amp;gt; (&lt;br /&gt;
                                             SELECT AVG(kolichestvo)&lt;br /&gt;
                                             FROM spasoi_ekz.spj SPJ JOIN spasoi_ekz.j J&lt;br /&gt;
                                                                       ON SPJ.nomer_izdelia = A.nomer_izdelia&lt;br /&gt;
                                            )&lt;br /&gt;
                       );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;Этот же запрос, но длиннее и нерациональней&#039;&#039;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT nazvanie&lt;br /&gt;
FROM (&lt;br /&gt;
      SELECT J.nazvanie, kolichestvo&lt;br /&gt;
      FROM spasoi_ekz.s S, spasoi_ekz.p P, spasoi_ekz.j J, spasoi_ekz.spj SPJ&lt;br /&gt;
      WHERE J.nomer_izdelia = SPJ.nomer_izdelia&lt;br /&gt;
        AND P.nomer_detali = SPJ.nomer_detali&lt;br /&gt;
        AND P.nazvanie = LOWER(&#039;Болт&#039;)&lt;br /&gt;
        AND S.imya = &#039;Иванов&#039;&lt;br /&gt;
        AND S.nomer_postavshika = SPJ.nomer_postavshika&lt;br /&gt;
     ) A&lt;br /&gt;
WHERE kolichestvo &amp;gt;&lt;br /&gt;
(&lt;br /&gt;
 SELECT AVG(kolichestvo)&lt;br /&gt;
 FROM spasoi_ekz.spj&lt;br /&gt;
 WHERE nomer_izdelia IN(&lt;br /&gt;
                        SELECT J.nomer_izdelia&lt;br /&gt;
                        FROM spasoi_ekz.s S, spasoi_ekz.p P, spasoi_ekz.j J, spasoi_ekz.spj SPJ&lt;br /&gt;
                        WHERE J.nomer_izdelia = SPJ.nomer_izdelia&lt;br /&gt;
                          AND P.nomer_detali = SPJ.nomer_detali&lt;br /&gt;
                          AND P.nazvanie = LOWER(&#039;Болт&#039;)&lt;br /&gt;
                          AND S.imya = &#039;Иванов&#039;&lt;br /&gt;
                          AND S.nomer_postavshika = SPJ.nomer_postavshika&lt;br /&gt;
                       )&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
      nazvanie&lt;br /&gt;
 -------------------&lt;br /&gt;
  шкаф&lt;br /&gt;
 (1 row)&lt;br /&gt;
&lt;br /&gt;
=== Билет 8 ===&lt;br /&gt;
&lt;br /&gt;
Написать запрос SELECT: выдать номера изделий и общее количество деталей для них, поставляемых поставщиками с именем &#039;Петров&#039;.&lt;br /&gt;
&lt;br /&gt;
Текст запроса:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT nomer_izdelia, SUM(kolichestvo)&lt;br /&gt;
FROM spasoi_ekz.spj SPJ JOIN spasoi_ekz.s S&lt;br /&gt;
  ON SPJ.nomer_postavshika = S.nomer_postavshika&lt;br /&gt;
     -- так как &amp;quot;поставщикАМИ&amp;quot; и возможны Иван Петров и Петров Иван, то LIKE %Петров%&lt;br /&gt;
     AND imya LIKE &#039;%Петров%&#039;&lt;br /&gt;
GROUP BY nomer_izdelia;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
  nomer_izdelia | sum&lt;br /&gt;
 ---------------+-----&lt;br /&gt;
  J3            |   6&lt;br /&gt;
  J1            |   3&lt;br /&gt;
 (2 rows)&lt;br /&gt;
&lt;br /&gt;
=== Билет 9 ===&lt;br /&gt;
&lt;br /&gt;
Написать запрос SELECT: выдать номера деталей и общее их количество для всех номеров деталей, которые входят только в одно изделие.&lt;br /&gt;
&lt;br /&gt;
Текст запроса:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT nomer_detali, SUM(kolichestvo)&lt;br /&gt;
FROM spasoi_ekz.spj&lt;br /&gt;
GROUP BY nomer_detali HAVING COUNT(nomer_izdelia) = 1;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
  nomer_detali | sum&lt;br /&gt;
 --------------+-----&lt;br /&gt;
  P9           |   1&lt;br /&gt;
  P7           |   5&lt;br /&gt;
  P3           |  50&lt;br /&gt;
  P16          |   2&lt;br /&gt;
  P13          |  14&lt;br /&gt;
  P6           |  20&lt;br /&gt;
  P8           |  25&lt;br /&gt;
 (7 rows)&lt;br /&gt;
&lt;br /&gt;
=== Билет 10 ===&lt;br /&gt;
&lt;br /&gt;
Написать запрос SELECT: выдать имена поставщиков, поставляющих детали с названием &#039;Болт&#039; для изделия с названием &#039;Рама 02-01&#039; в количестве (в поставке) большим, чем минимальное значение поставки детали с номером &#039;P1&#039;.&lt;br /&gt;
&lt;br /&gt;
Текст запроса:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT imya&lt;br /&gt;
FROM spasoi_ekz.spj SPJ JOIN spasoi_ekz.j J&lt;br /&gt;
			   ON SPJ.nomer_izdelia = J.nomer_izdelia&lt;br /&gt;
			      AND J.nazvanie = LOWER(&#039;Рама 02-01&#039;)&lt;br /&gt;
			 JOIN spasoi_ekz.p P&lt;br /&gt;
			   ON SPJ.nomer_detali = P.nomer_detali&lt;br /&gt;
			      AND P.nazvanie = LOWER(&#039;Болт&#039;)&lt;br /&gt;
			 JOIN spasoi_ekz.s S&lt;br /&gt;
			   ON SPJ.nomer_postavshika = S.nomer_postavshika&lt;br /&gt;
WHERE kolichestvo &amp;gt; (&lt;br /&gt;
		     SELECT MIN(kolichestvo)&lt;br /&gt;
		     FROM spasoi_ekz.spj SPJ JOIN spasoi_ekz.p P&lt;br /&gt;
					       ON SPJ.nomer_detali = P.nomer_detali&lt;br /&gt;
					          AND P.nomer_detali = &#039;P1&#039;&lt;br /&gt;
                    );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
     imya&lt;br /&gt;
 -------------&lt;br /&gt;
  Русе Болтон&lt;br /&gt;
 (1 row)&lt;br /&gt;
&lt;br /&gt;
=== Билет 11 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Написать запрос SELECT: выдать названия городов и суммарное состояние проживающих в каждом городе поставщиков, у которых минимальный объём поставки деталей больше 1000.&lt;br /&gt;
&lt;br /&gt;
Текст запроса:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SELECT gorod, sost FROM(&lt;br /&gt;
                        SELECT gorod, SUM(sostoyanie) as sost, SUM(SPJ.kolichestvo) from SPJ,S&lt;br /&gt;
                        WHERE S.nomer_postavshika = SPJ.nomer_postavshika&lt;br /&gt;
                        GROUP BY S.gorod HAVING SUM(SPJ.kolichestvo) &amp;gt; 1000&lt;br /&gt;
                       ) A;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
   gorod   |  sost&lt;br /&gt;
 ----------+--------&lt;br /&gt;
  Москва   | 105000&lt;br /&gt;
    (1 row)&lt;br /&gt;
&lt;br /&gt;
=== Билет 12 ===&lt;br /&gt;
&lt;br /&gt;
=== Билет 13 ===&lt;br /&gt;
&lt;br /&gt;
=== Билет 14 ===&lt;br /&gt;
&lt;br /&gt;
=== Билет 15 ===&lt;br /&gt;
&lt;br /&gt;
=== Билет 16 ===&lt;br /&gt;
&lt;br /&gt;
=== Билет 17 ===&lt;br /&gt;
&lt;br /&gt;
=== Билет 18 ===&lt;br /&gt;
&lt;br /&gt;
=== Билет 19 ===&lt;br /&gt;
&lt;br /&gt;
=== Билет 20 ===&lt;br /&gt;
&lt;br /&gt;
=== Билет 21 ===&lt;br /&gt;
&lt;br /&gt;
=== Билет 22 ===&lt;br /&gt;
&lt;br /&gt;
=== Билет 23 ===&lt;br /&gt;
&lt;br /&gt;
=== Билет 24 ===&lt;br /&gt;
&lt;br /&gt;
=== Билет 25 ===&lt;br /&gt;
&lt;br /&gt;
=== Билет 26 ===&lt;br /&gt;
&lt;br /&gt;
=== Билет 27 ===&lt;br /&gt;
&lt;br /&gt;
=== Билет 28 ===&lt;br /&gt;
&lt;br /&gt;
=== Билет 29 ===&lt;br /&gt;
&lt;br /&gt;
=== Билет 30 ===&lt;br /&gt;
&lt;br /&gt;
[[Категория:Структурное проектирование АСОИ (10 семестр)]]&lt;/div&gt;</summary>
		<author><name>195.19.34.135</name></author>
	</entry>
</feed>