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

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


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

Выпуск 570 от 05 сентября 2015 г.

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

SQL Exercises

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

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

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

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


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

§ Изменён коэффициент сложности нескольких рейтинговых задач:
16: 1 --> 2
17: 2 --> 3
217: 3 --> 4

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

Топик		Сообщений
123 (Learn)	17
77 (SELECT)	10
777		7
106 (Learn)	6
Guest's book	4

 

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

Автор		Сообщений
qwrqwr  	11
kipoogep  	10
nikz2710s	7
Karahan  	7
Orhan229	6

 

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

Задача	Дата		Автор
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
197	2014-11-06	pegoopik
214	2015-06-24	pegoopik
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

 

§ Изменения среди лидеров (решенные за неделю задачи третьего этапа):
Смена лидера!
1. Arcan (217)
10. smog (187)
103. dr.shtopor (140)

§ Продвижение ближайших претендентов на попадание в ТОР 100 (число задач, время решения в днях):
103. dr.shtopor (142, 269.632)
119. Kazaam (141, 59.834)
130. Эс-Кью-Эль (131, 52.795)
136. Alexander_ttl (127, 263.265)
141. Fomichev (129, 34.468)
154. the_bald (122, 1.709)
210. selber (105, 298.216)

§ На этой неделе сертифицированы:
Schmidt (A15263323) [BK] - г. Москва, Россия

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

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

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

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

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

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

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

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

No Person Number of
Sel_ex
Last_Sel Number of
DML_ex
Scores Days Days_2 Days_3 S_3 LastSolved LastVisit
1>Креславский О.М. (Arcan)1246217255893137251.622195.4792072015-09-042015-09-04
2Филиппкин Д.В. (_dimon_)124517255862373194.452127.9612042015-07-222015-09-03
3Бежаев А.Ю. (Baser)1245127255861936173.428150.9932042015-08-202015-09-04
4Курочкин П.А. (qwrqwr)124317255792068233.361159.3781972015-07-102015-09-04
5Карасёва Н.В. (vlksm)124317255793364236.641187.7941972015-07-302015-08-31
6Boiko D. (Angellore)1241432557528143323.9931729.6011952015-04-252015-08-30
7Сальников С.А. ($erges)123220625558253317.56514.5391832015-02-022015-03-12
8Movlyanov A.P. (Oct)8237176255557781510.7321680.4501792015-08-132015-09-04
9Яцук А.А. (Faust_zp)1191255244661984144.239108.8401372012-07-122012-07-30
10Кукушкин С.А. (smog)9214187254871605950.6671067.9351262015-09-012015-09-01
11kipoogep (kipoogep)10217217255061877205.2508.3171242015-08-282015-08-29
12Кузнецов В.С. (herrRo)1176260234251167478.61773.3351222012-02-082013-06-18
13Гринкевич Д.Л. (Дмитрий Гринкевич)13205208254621416362.109927.2371092015-08-272015-09-04
14Дубинский А.В. (_velial)1193162445819271879.5452429.0111082015-02-222015-07-16
15Дроздков А.Н. (anddros)51971624451224412.51311.0911082014-07-212015-01-29
16Вязовецков А.С. (alex_v)15181187234123246124.38342.737992015-04-282015-06-05
17Шиндин А.В. (AlShin)115225223373928408.656777.457992011-05-052014-05-18
18Тарасов Д.Б. (Gavrila)916915234002427151.39399.710952012-04-232012-05-25
19Орлов М.В. (Eagleoff)915625823376952138.510106.466922011-11-102015-08-17
20Зотов П.Г. (Ozzy)1154-16233731412213.845187.364832012-02-052015-04-07

TOP 10 по оптимизации запросов


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

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1Потапенко Е. (potap_)0103131280704 Sep 2015
2Комолов С. (serkkk)0202828287004 Sep 2015
3Лапаев М.А. (Si1entAssass1N)181922022141102 Sep 2015
4Беседина М.В. (tanata)0
01919385802 Sep 2015
5Михалёв А.М. (alexey_mikhalev)0
01919385903 Sep 2015
6Шмидт С.В. (Serg_Vladimirovich)9631801851504 Sep 2015
7Tcelykh (THRASH)0
01818398304 Sep 2015
8>Овсянников А.С. (lnl122)8821701733704 Sep 2015
9Чаплинский В.А. (Жми кнопку)121614317351002 Sep 2015
10>Виноградова (Tigra1)102916016233104 Sep 2015
11Фёдоров (AstroZomb)687815306304 Sep 2015
12>Тимофеева Е.В. (Umrikhina)8171140142904 Sep 2015
13Borisov R.A. (Heck)1111314422203 Sep 2015
14Aнтонишен (Anastasii25)0
01414428103 Sep 2015
15>shyrik (1shyrik1)101412012184904 Sep 2015
16sirkova J.S. (jenda21)0
01111470604 Sep 2015
17>Щепин Н. (nikz2710s)5801001030504 Sep 2015
18>Пустобаев (Иван П.)4621001087004 Sep 2015
19Царапкин Д.И. (Tsarapkin)525909119204 Sep 2015

Изучаем SQL

Функция NTILE

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

Задача. Распределить баллончики по 3-м группам поровну. Группы заполняются в порядке возрастания v_id.

Эту задачу решает функция ранжирования NTILE, которая появилась в SQL Server 2008.

Эта функция возвращает номер группы, в которую попадает соответствующая строка результирующего набора.

    SELECT *, NTILE(3) OVER(ORDER BY v_id) gr FROM utv ORDER BY v_id;

Параметром функции NTILE является число групп. Остальное вам уже известно. :-)

Если мы захотим распределить порознь баллончики каждого цвета, то, как и для других функций ранжирования, можно добавить конструкцию PARTITION BY в предложение OVER:

    SELECT *, NTILE(3) OVER(PARTITION BY v_color ORDER BY v_id) gr
    FROM utv ORDER BY v_color, v_id;

V_ID	V_NAME		V_COLOR	gr
7	Balloon # 07	B	1
8	Balloon # 08	B	1
9	Balloon # 09	B	1
15	Balloon # 15	B	1
16	Balloon # 16	B	1
19	Balloon # 19	B	1
22	Balloon # 22	B	2
25	Balloon # 25	B	2
26	Balloon # 26	B	2
33	Balloon # 33	B	2
36	Balloon # 36	B	2
39	Balloon # 39	B	2
43	Balloon # 43	B	3
46	Balloon # 46	B	3
47	Balloon # 47	B	3
51	Balloon # 51	B	3
54	Balloon # 54	B	3
4	Balloon # 04	G	1
 ...

Обратите внимание на группы синего цвета (B). В двух первых группах оказалось по 6 баллончиков, а в третьей только 5. В случае, когда число строк не делится нацело на число групп, функция NTILE помещает в последние группы на одну строку меньше, чем в первые.

Наконец, если аргумент функции NTILE окажется больше числа строк, то будет сформировано количество групп, равное числу строк, и в каждой группе окажется по одной строке.

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

§ Вы можете купить футболку или кружку с логотипом сайта.

§ В настоящее время для решения упражнений на сайте используются следующие СУБД: 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"

В избранное