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

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


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

Выпуск 263 от 10 октября 2009 г.

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

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

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

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

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


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

§ Устранил баг, связанный с пометкой всех топиков прочитанными. Должно работать.

§ Изменения среди лидеров (решенные за неделю задачи третьего этапа):
3. Faust_zp (159, 160)
6. vlksm (159)

§ Одна задача до третьего этапа осталась:
62. Allex (задач 137, время 89.731)

§ Продвинулись в рейтинге:
60. Vasilko (137, 10.547)
65. SergLK (136, 20.133)
80. alx_ol (128, 170.239)
86. Gendalf (125, 134.421)
96. _irina_ (125, 32.436)

§ Новые лица в ТОР 100 и вернувшиеся туда:
91. vvz (125, 2.677)

§ Продвижение ближайших претендентов на попадание в ТОР 100:
109. kostik (121, 94.914)
119. ikhomeriki (115, 4.150)
123. nadush (118, 310.814)
132. Валдай (118, 23.493)
148. lilyok (116, 73.997)
173. Ivanoff Alex (113, 21.590)

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

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

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

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

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

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

Лучшие результаты (ТОР 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)1 161 161 22 391 955 105.388 86.774 68 11 Sep 2009 09 Oct 2009
2 Зотов П.Г. (Ozzy)1 161 159 22 391 567 196.171 209.314 68 28 Sep 2009 09 Oct 2009
3 >Яцук А.А. (Faust_zp)3 161 159 22 391 978 113.623 668.661 68 09 Oct 2009 09 Oct 2009
4 Сальников С.А. ($erges)1 160 161 22 388 560 5.641 5.864 65 08 Sep 2009 09 Oct 2009
5 Умрихина Е.В. (Umrikhina)1 160 161 22 388 489 41.362 58.776 65 26 Aug 2009 29 Sep 2009
6 >Карасёва Н.В. (vlksm)1 160 159 22 388 1252 105.874 76.476 65 09 Oct 2009 09 Oct 2009
7 Дроздков А.Н. (anddros)5 159 161 22 385 464 7.479 8.046 62 03 Sep 2009 09 Oct 2009
8 Сенкевич С.В. (GreyC)1 142 2 21 352 612 57.860 27.102 44 07 Oct 2009 07 Oct 2009
9 Селезнёв А.С. (Артём С.)1 139 152 21 345 444 47.248 37.524 44 25 Jan 2009 03 Mar 2009
10 Никотин В.М. (@Nikotin)1 142 150 21 348 283 8.371 3.751 38 06 Jun 2009 30 Sep 2009
11 Печатнов В.В. (pvv)1 151 161 21 359 679 37.011 19.973 37 28 Aug 2009 09 Oct 2009
12 Мурашкин И.В. (lepton)1 135 156 21 331 1139 69.490 59.005 36 05 May 2009 24 Sep 2009
13 Муллаханов Р.Х. (rem)9 145 152 22 350 649 14.627 20.056 33 20 Jun 2009 03 Aug 2009
14 Тарасов Д.Б. (Gavrila)14 149 144 22 355 1490 47.703 17.099 32 24 Sep 2009 09 Oct 2009
15 Шиндин А.В. (AlShin)10 136 150 21 335 79 20.458 7.203 28 05 Jan 2009 25 May 2009
16 Анисимов Д. (danilko)13 148 160 22 348 32 12.722 9.542 28 12 Aug 2009 17 Aug 2009
17 Держальцев В.А. (MadVet)7 128 146 21 315 1509 60.783 28.482 26 03 Jun 2009 16 Jun 2009
18 Любченко В.А. (IAS56)6 138 146 21 332 1048 420.338 373.617 26 18 Jul 2009 28 Jul 2009
19 Голубин Р.С. (Roman S. Golubin)3 132 145 21 321 1413 93.162 58.822 23 01 Jul 2009 13 Sep 2009
20 Nikolaenko A.V. (Shadow77)12 146 161 22 345 763 89.561 14.019 22 14 Sep 2009 29 Sep 2009

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

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1 Litovchenko R. (roman_ol) 15 59 22 35 57 750 07 Oct 2009
2 >Polishchuk K. (polishchuk) 10 10 15 35 50 4118 09 Oct 2009
3 >Barata J. (barata) 21 22 43 0 43 4614 09 Oct 2009
4 Тумаков Д. (dtum) 17 31 42 0 42 3081 08 Oct 2009
5 cotrim J.M. (jcotrim) 19 20 42 0 42 4718 09 Oct 2009
6 Заворотнев В.В. (vvz) 16 125 41 0 41 91 09 Oct 2009
7 >mozilya (moz_ilya) 19 36 39 1 40 2420 09 Oct 2009
8 >Деменко А.Г. (alec_d) 22 22 38 1 39 5516 09 Oct 2009
9 >Domakhina (Ludok) 15 15 33 0 33 6418 09 Oct 2009
10 Минаев Е. (Djony) 13 13 26 3 29 6899 09 Oct 2009
11 Данилов Д.В. (Boarder) 9 18 22 6 28 4532 09 Oct 2009
12 >Заикин А.С. (Allex) 12 137 27 0 27 62 09 Oct 2009
13 Плугин В. (Basilik) 2 43 4 23 27 1339 09 Oct 2009
14 >Заславский М. (МихаилЗа) 13 13 27 0 27 7114 09 Oct 2009
15 Vasileva (Anchous) 2 26 5 19 24 2287 09 Oct 2009
16 Черкасов С.Б. (Chesbor) 3 3 5 19 24 7585 05 Oct 2009
17 >Воевуцкий С.А. (SergLK) 11 136 23 0 23 65 09 Oct 2009
18 >Бичев К. (gdengam) 11 87 22 0 22 307 09 Oct 2009
19 И С. (alex.i) 9 105 21 0 21 223 09 Oct 2009
20 Karpukhov A. (aleksey_k) 9 71 21 0 21 482 08 Oct 2009

Изучаем SQL

Комментарий к статье "Как удалить дубликаты строк из таблицы?"

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

Попал по внешней ссылке на эту статью и решил себе возразить. :-)

Вот эта фраза: "Мы не можем сразу ранжировать строки просто потому, что их не по чем ранжировать."

Разумеется, это правильно, но мы можем отказаться от ранжирования (в ущерб обучению :-)), выполнив "псевдоранжирование". Дело в том, что есть возможность выполнить независимую нумерацию для каждой группы, если в предложении OVER для функции ROW_NUMBER использовать конструкцию PARTITION BY. Итак, можно вообще обойтись без функции RANK, если выполнить разбиение по name. Тогда вместо решения

SELECT name, RANK() OVER (PARTITION BY name ORDER BY num) rnk
FROM (SELECT *, ROW_NUMBER() OVER(ORDER BY name) num
   FROM T
   ) X;
мы получим
SELECT name, ROW_NUMBER() OVER(PARTITION BY name ORDER BY name)
FROM T;

Это упростит все последующие запросы; в частности, последнее решение задачи удаления дубликатов можно переписать в виде:

WITH CTE AS (
 SELECT name, ROW_NUMBER() OVER(PARTITION BY name ORDER BY name) rnk
 FROM T
  )
DELETE FROM CTE
WHERE rnk > 1;

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

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

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

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

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

Контакты

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

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

В избранное