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

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


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

Выпуск 461 от 27 июля 2013 г.

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

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

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

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

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


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

§ Задача 199 перенесена на обучающий этап под номером 104.

§ Baser и qwrqwr уточнили формулировку задачи 37 (SELECT, рейтинг).

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

Топик		Сообщений
198 (SELECT)	22
199 (SELECT)	21
85 (Learn)	7
779		7
24 (Learn)	6

 

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

Автор		Число сообщений
qwrqwr  		19
Pegoopik  		14
Носов С.С.		9
Дмитрий Гринкевич  	8
anddros  		5

 

§ Объявленные конкурсы по оптимизации запросов

Задача	Дата		Автор
147	2012-02-23	$erges
159	2012-07-25	anddros
170	2011-07-15	qwrqwr
182	2012-02-16	Baser
192	2012-03-03	Baser
259	2012-07-23	anddros

 

Дополнительные неоптимизационные конкурсы

Задача	Дата		Автор/Организатор конкурса
71	2010-12-26	anddros (завершен).
88	2012-07-12	crescent/Pegoopik
91	2012-05-31	smog/$erges
121	2012-07-06	ZrenBy/anddros
153	2010-09-21	Ozzy

 

§ Изменения среди лидеров (решенные за неделю задачи третьего этапа):
18. Дмитрий Гринкевич (196)

§ К третьему этапу подошли:
96. SergM (задач 146, время 81.329)

§ Продвижение ближайших претендентов на попадание в ТОР 100:
207. YuriPetrov (100, 16.856)
221. Iura__ (101, 7.737)

§ На этой неделе сертифицированы:
Romka029 (A13106840) [BK] - г. Санкт-Петербург, Россия
Nakeshi (A13094936) [BK] - г. Тула, Россия

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

Число упражнений:
   на обучающем этапе - 109;
   на рейтинговых этапах - 197;
   DML - 24
   головоломки - 9 (отрицательные номера) + 9 (3 этап).

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

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

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

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

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

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

No Person Number of
Sel_ex
Last_Sel Number of
DML_ex
Scores Days Days_2 Days_3 S_3 LastSolved LastVisit
1Курочкин П.А. (qwrqwr)1218198245151348218.609146.9211602013-07-202013-07-26
2Креславский О.М. (Arcan)1218199245152361215.069160.8091602013-07-202013-07-26
3Карасёва Н.В. (vlksm)1218303245152624212.554167.6851602013-07-202013-07-26
4Бежаев А.Ю. (Baser)121158245061168151.299132.6511542013-07-132013-07-26
5Сальников С.А. ($erges)121313524506195214.82211.9891512013-07-012013-07-26
6Boiko D. (Angellore)62111552449721512890.1901428.2711422013-07-012013-07-13
7Филиппкин Д.В. (_dimon_)7210161244941633163.06599.2511392013-07-112013-07-19
8Яцук А.А. (Faust_zp)1200255244811985144.272108.8401352012-07-122012-07-30
9Кузнецов В.С. (herrRo)1185104234421170481.38873.3351222012-02-082013-06-18
10Дроздков А.Н. (anddros)519619924452188012.47611.0901062013-07-222013-07-26
11Дубинский А.В. (_yizraor)1185122244381088718.8041122.9071022012-11-052012-11-25
12Шиндин А.В. (AlShin)116125223396928408.897777.457992011-05-052011-05-21
13Тарасов Д.Б. (Gavrila)917832234182428151.46299.710952012-04-232012-05-25
14Орлов М.В. (Eagleoff)9165-323396952138.545106.466922011-11-102013-07-26
15Зотов П.Г. (Ozzy)116313233891412213.968187.364812012-02-052013-07-26
16Держальцев В.А. (MadVet)3151100223682073143.64299.698812010-12-292011-09-26
17Кукушкин С.А. (smog)1718419924407833242.283422.274732013-07-212013-07-26
18Гринкевич Д.Л. (Дмитрий Гринкевич)1818319624401651116.475248.318702013-07-232013-07-26
19Агапов В. (KERBEROS)117525324408240935.65327.703692013-04-022013-04-05
20Калинин К.А. (kalinin_k)161681692338439927.21536.659602012-06-302013-07-25

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

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1>Ионов Е.В. (Evgeniy Ionov)1213142741183426 Jul 2013
2>Балунов М.А. (Имбокофе)1818241236254726 Jul 2013
3>Borodin A. (Minamoto)252531031271326 Jul 2013
4>Сератила Д.П. (dmseratila)16462802877526 Jul 2013
5>Ogg (nanny)15422602686226 Jul 2013
6Узинцев А.В. (alexuv)14632202257025 Jul 2013
7Ivanova (parampampam)716101020225825 Jul 2013
8Razin S. (Omikron)0
01919362324 Jul 2013
9>Jersovas V. (Vitality77)12581801861425 Jul 2013
10Кавтур Н.С. (DarkTemplar)0
01717381826 Jul 2013
11roy (quoterman1)0
01717381926 Jul 2013
12>Ширкин С.В. (Доктр)112516016165726 Jul 2013
13>Мищук С.И. (ustas2)91111516372826 Jul 2013
14Иоффе Ю.А. (Iura__)71011501522124 Jul 2013
15>Александр (A.Mozolini)9551401478526 Jul 2013
16>Овсянников А.С. (lnl122)111814014158826 Jul 2013
17>Яковлев Ю.В. (Яковлев Юрий)112514014272126 Jul 2013
18Дёмин А. (Дёма)0
01414406825 Jul 2013
19Дубей И.А. (AnonimusNew)73612012182626 Jul 2013
20Карелин Е. (Evgeshka__)1111112435525 Jul 2013
21>Setrin S.A. (LuckyHawk)6711101144126 Jul 2013
22>Титов С.С. (Serg84)53711011169826 Jul 2013

Изучаем SQL

Накопительные итоги и SQL Server 2012

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

Расширение поддержки оконных функций в SQL Server 2012 позволяет решить задачу о накопительных итогах совсем просто.

Применительно к нашей задаче речь идет о следующих появившихся возможностях:
1. Использование сортировки в предложении OVER при применении агрегатных функций.
2. Спецификация диапазона, к значениям которого применяется агрегатная функция. При этом диапазон может быть как ограниченным, так и неограниченным, скажем, от текущей строки до конца или начала отсортированного набора.

Т.е. мы можем получить накопительный итог, упорядочив данные по дате и подсчитав сумму от текущей строки и (неограниченно) выше, причем сделать это с помощью одной функции!

Задачу о накопительных итогах для пункта 2, которая рассматривалась ранее, теперь мы можем решить так:

    SELECT point, date, out,
        SUM(out) OVER (PARTITION BY point
                ORDER BY date -- сортировка по дате
                RANGE -- диапазон
                UNBOUNDED -- неограниченный
                PRECEDING -- от текущей строки и выше
                )
        FROM Outcome_o o
        WHERE point = 2
        ORDER BY point, date;

Для получения накопительных итогов по каждому пункту отдельно уберем из предыдущего запроса условие отбора по пункту:

    SELECT point, date, out,
        SUM(out) OVER (PARTITION BY point ORDER BY date RANGE UNBOUNDED PRECEDING)
        FROM Outcome_o o
        ORDER BY point, date;

Представленные здесь решения будут работать в PostgreSQL и Oracle. Что касается MySQL, то там поддержка оконных функций пока не реализована.

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

§ В настоящее время для решения упражнений на сайте используются следующие СУБД: SQL Server 2012 Express, Oracle 11g Express Edition, MySQL 5, PostgreSQL 9.

§ Группа SQL Exercises на LinkedIn.com. Присоединяйтесь!

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

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

§ Книги и статьи по SQL.

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

Контакты

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

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

В избранное