Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Новости сайта "Упражнения по SQL" (http://www.sql-ex.ru) 319


Новости сайта "Упражнения по SQL (http://www.sql-ex.ru)"

Выпуск 319 от 06 ноября 2010 г.

Новым посетителям сайта

SQL Exercises Сайт посвящен изучению языка, с помощью которого осуществляется взаимодействие с реляционными (и не только) СУБД. Суть обучения состоит в выполнении заданий на написание запросов к учебным базам данных; при этом система контролирует правильность выполнения заданий. В настоящее время реализованы все операторы подъязыка манипуляции данными (DML), которые включают в себя оператор извлечения данных SELECT, а также операторы модификации данных - INSERT, DELETE и UPDATE.

Мы надеемся, что справочного материала сайта окажется достаточно для самостоятельного обучения. Кроме того, свои решения вы можете обсудить на форуме сайта. Опытных же специалистов приглашаем проверить (продемонстрировать) свое мастерство и принять участие в соревновании, обеспечиваемом рейтинговой системой учета времени выполнения заданий. Фактически, рейтинг ведется на втором этапе тестирования, который начинается сейчас после решения 30-й задачи первого этапа. При подсчете рейтинга каждого участника отбрасывается один самый худший показатель среди всех решенных им упражнений.

Демонстрация плана выполнения запроса и сравнительная оценка эффективности решений поможет вам освоить принципы оптимизации запросов, которые пригодятся на третьем рейтинговом этапе, который начинается после 138 задачи.

Имеется возможность получить сертификат по SQL DML при выполнении определенного количества заданий.


Новости сайта

§ Новая задача от нового автора Руслан1707 выставлена под номером 73 (сложность 1).
При этом произошли следующие перестановки задач:

27 --> обучающий этап
32 --> 27
56 --> 32
73 --> 56

 

§ Автор уточнил формулировку задачи 78, добавил подсказку и уменьшил время ее появления.
BW подправил английский вариант формулировки задачи 82.

§ Продолжается голосование в рамках Премии Рунета.
Голосуем здесь.
Напоминаю, что на конкурсе представлены два наших ресурса - Упражнения по SQL и Интерактивный учебник.

§ Самые популярные темы недели на форуме

Топик  Сообщений
73 (SELECT) 18
Guest's book 7
116 (SELECT) 4
170 (SELECT) 3

19 (SELECT) 2

 

§ Авторы недели на форуме

Автор  Число сообщений
Pegoopik   9
MariaVVV 6
Dima_SV  5
Eagleoff   4
Руслан1707   4

 

§ Изменения среди лидеров (решенные за неделю задачи третьего этапа):
3. MadVet (147)
10. Angellore (168)
12. AlShin (158, 159)
13. Eagleoff (170)
20. Baser (152, 153)
23. Wiedzmen (164, 170)

§ Продвинулись в рейтинге:
72. IrinkaR (137, 22.648)
74. silver (136, 65.465)
76. BW (129, 164.187)
77. Pegoopik (129, 20.161)
80. Easy-Human (127, 11.940)
84. raul (128, 19.768)
91. _ORA_ (122, 217.324)
92. Magnetic (123, 793.288)
93. tolikas (120, 21.785)

§ Продвижение ближайших претендентов на попадание в ТОР 100:
102. Dima_SV (122, 15.712)
112. Faust (115, 61.869)
115. GrImago (111, 26.312)
116. O.o (115, 71.295)
120. Sergey79 (114, 1001.186)
130. NoGo (110, 7.927)
150. OPM (116, 212.612)
159. .Wizard (105, 621.196)

§ Число подписчиков - 3817

Число участников рейтинга - 8810

Число участников второго этапа - 2196

Число участников третьего этапа - 71

На обучающем этапе - 21159

Сертифицировано на сайте - 464

Лучшие результаты (ТОР 20)

No Person Number of
Sel_ex
Last_Sel Number of
DML_ex
Scores Days Days_2 Days_3 S_3 LastSolved LastVisit
1 Карасёва Н.В. (vlksm)1 173 73 23 410 1637 140.630 95.317 90 2010-11-02 2010-11-05
2 Креславский О.М. (Arcan)1 173 73 23 410 1371 144.361 103.057 90 2010-11-02 2010-11-05
3 >Держальцев В.А. (MadVet)3 169 73 22 395 2023 148.173 107.547 86 2010-11-05 2010-11-05
4 Дубинский А.В. (_yizraor)3 169 34 23 402 312 226.024 338.593 83 2010-09-25 2010-10-20
5 Сальников С.А. ($erges)1 167 26 23 398 942 8.513 7.876 81 2010-09-25 2010-11-05
6 Зотов П.Г. (Ozzy)1 164 26 22 388 917 214.147 190.281 74 2010-09-27 2010-11-02
7 Дроздков А.Н. (anddros)5 165 73 23 389 888 9.973 9.278 69 2010-11-03 2010-11-04
8 Яцук А.А. (Faust_zp)1 150 65 22 362 1093 121.912 89.835 69 2010-02-01 2010-05-22
9 Тарасов Д.Б. (Gavrila)9 161 73 23 375 1895 95.868 54.649 60 2010-11-03 2010-11-05
10 Бойко Д.М. (Angellore)8 162 73 23 375 1179 932.130 219.666 58 2010-11-02 2010-11-05
11 Умрихина Е.В. (Umrikhina)1 137 18 22 331 853 41.244 43.454 56 2010-08-25 2010-09-06
12 Шиндин А.В. (AlShin)10 138 159 21 325 745 266.281 658.660 55 2010-11-02 2010-11-05
13 Орлов М.В. (Eagleoff)11 159 73 23 369 929 77.559 43.806 49 2010-11-02 2010-11-05
14 Курочкин П.А. (qwrqwr)14 156 73 23 359 357 87.974 44.686 48 2010-11-02 2010-11-05
15 Сенкевич С.В. (GreyC)1 119 2 21 294 393 57.718 23.321 38 2009-10-07 2010-01-01
16 Селезнёв А.С. (Артём С.)1 116 106 21 286 444 47.221 30.368 38 2009-01-25 2010-09-08
17 Печатнов В.В. (pvv)1 150 140 21 342 1085 40.651 15.512 33 2010-10-08 2010-11-05
18 Никотин В.М. (@Nikotin)1 120 2 21 291 469 8.335 3.541 32 2009-12-11 2010-11-03
19 Мурашкин И.В. (lepton)1 112 4 21 271 1139 69.439 58.709 32 2009-05-05 2010-10-24
20 Бежаев А.Ю. (Baser)20 155 73 23 349 182 66.893 40.916 31 2010-11-02 2010-11-05

Лучшие результаты за неделю

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1 >Скуз Д.В. (Dima_SV) 8 122 19 25 44 104 05 Nov 2010
2 Борисов С.Н. (XForce) 20 61 24 0 24 493 03 Nov 2010
3 >Красовский Е.А. (Pegoopik) 9 129 23 0 23 77 05 Nov 2010
4 Horloev T.C. (Tumer) 0 0 22 22 3469 05 Nov 2010
5 >Сидоров А.В. (OPM) 8 116 20 0 20 150 05 Nov 2010
6 Фамилия И. (нетпсевдонима) 14 14 19 0 19 3754 03 Nov 2010
7 Груздев С.С. (Sergeich) 0 0 19 19 3837 05 Nov 2010
8 >bsh L. (O.o) 7 115 17 0 17 116 05 Nov 2010
9 >Толстихин К.В. (magi) 9 83 17 0 17 297 05 Nov 2010
10 >Джгаркава М.З. (medgar) 12 44 17 0 17 656 05 Nov 2010
11 >Ноговицын А.А. (NoGo) 6 110 15 0 15 130 05 Nov 2010
12 >Щукин А.С. (Faust) 6 115 14 0 14 112 05 Nov 2010
13 Кожаринов (bubala) 9 20 14 0 14 2744 03 Nov 2010
14 alex (szaszalex83) 7 16 13 0 13 1459 30 Oct 2010
15 Добродий А.В. (DAlessio) 3 29 9 4 13 1689 01 Nov 2010
16 Williams (BW) 6 129 12 0 12 76 05 Nov 2010
17 >Shtogryn (Klondal) 9 14 12 0 12 3685 05 Nov 2010
18 e E.A. (gene eae) 8 61 11 0 11 497 03 Nov 2010
19 Стерхов И.М. (StivX) 0 0 11 11 5428 05 Nov 2010
20 Каменская С.А. (Maiya) 5 70 10 0 10 380 05 Nov 2010
21 >Казаров С.В. (ALion) 3 68 7 3 10 394 05 Nov 2010

Изучаем SQL

Агрегатная функция от агрегатной функции

Моисеенко С.И.

Давайте рассмотрим такую задачу:

Найти максимальное значение среди средних цен ПК, посчитанных для каждого производителя отдельно.

Посчитать средние значения стоимости по производителям труда не составляет:

SELECT AVG(price) avg_price
FROM Product P JOIN PC ON P.model = PC.model
GROUP BY maker;

Однако стандарт запрещает использовать подзапрос в качестве аргумента агрегатной функции, т.е. нельзя решить задачу следующим способом:

SELECT MAX(
SELECT AVG(price) avg_price
FROM Product P JOIN PC ON P.model = PC.model
GROUP BY maker
);

В подобных случаях используется подзапрос в предложении FROM:

SELECT MAX(avg_price)
FROM (SELECT AVG(price) avg_price
      FROM Product P JOIN PC ON P.model = PC.model
      GROUP BY maker
     ) X;

С помощью новых возможностей языка - оконных функций - эту задачу можно решить без подзапроса:

SELECT DISTINCT MAX(AVG(price)) OVER () max_avg_price
      FROM Product P JOIN PC ON P.model = PC.model
     GROUP BY maker;

     max_avg_price
           850

Обратите внимание, что оконные функции допускают использование агрегатной функции в качестве аргумента. Ключевое слово DISTINCT необходимо здесь, поскольку максимальное значение, подсчитанное по всему набору средних значений, будет "приписано" каждому производителю.

Читать далее...

Полезная информация

§ Приглашаем вас посетить Интерактивный учебник по SQL.
   Ресурс позиционируется как "справочное обеспечение" для сайта SQL-EX.RU, но может использоваться и независимо от него.

§ Онлайновый выпуск рассылки можно почитать на сайте.

§ Все статьи, публикуемые в рассылке, затем выкладываются на сайте Книги и статьи по SQL.

§ Хотите поддержать проект? Вот инструкция по применению.

Контакты

По всем вопросам, связанным с функционированием сайта, проблемами при решении упражнений, идеями вы можете обращаться к Сергею И.Моисеенко msi77[@]yandex.ru. Вы также можете предложить свои задачи для публикации на сайте.

Подписка Subscribe.Ru
Новости сайта "Упражнения по SQL"

В избранное