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

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


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

Выпуск 469 от 21 сентября 2013 г.

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

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

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

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

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


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

§ Новые задачи и перестановки на сайте:
201 --> обучающий этап (# 106);
201 - новая задача от Baser (2 балла) выставлена для обсуждения;
Несколько изменилась постановка задачи 202 от Baser. Решения предыдущей версии этой задачи удалены, поэтому решившим ее ранее предстоит перерешать задачу.

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

Топик		Сообщений
779		31
198 (SELECT)	21
95 (Learn)	9
15 (SELECT)	7
32 (Learn)	4

 

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

Автор		Число сообщений
Pegoopik  	16
qwrqwr  	13
Angellore  	12
Avangard	12
GANRIK  	11

 

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

Задача	Дата		Автор
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

 

§ Изменения среди лидеров (решенные за неделю задачи третьего этапа):
1. _dimon_ (198)
2. qwrqwr (198)
3. Arcan (198)
4. Angellore (198)
6. vlksm (198)
55. WY (253)

§ Продвижение ближайших претендентов на попадание в ТОР 100:
102. Oct (141, 58.034)
122. YuriPetrov (129, 25.630)
134. Dmitry Varenikov (122, 421.488)
140. MontaG (119, 36.931)
153. Igor.N.B. (115, 37.628)
174. Pavel_yu (103, 286.575)
211. mcrain (102, 255.815)

§ На этой неделе сертифицированы:
Boris Pankin (A13165044) [BK] - г. Москва, Россия
Oct (B13161667) [AR] - г. Киев, Украина

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

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

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

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

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

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

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

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

No Person Number of
Sel_ex
Last_Sel Number of
DML_ex
Scores Days Days_2 Days_3 S_3 LastSolved LastVisit
1Филиппкин Д.В. (_dimon_)1223198245241701171.855108.0261672013-09-172013-09-20
2Курочкин П.А. (qwrqwr)1223198245241408220.090148.3831672013-09-182013-09-20
3Креславский О.М. (Arcan)1223198245242420218.532164.1741672013-09-172013-09-20
4Boiko D. (Angellore)12231982452422253070.7711608.8301672013-09-132013-09-20
5Бежаев А.Ю. (Baser)1222201245231224151.721132.8641662013-09-072013-09-20
6Карасёва Н.В. (vlksm)1222198245212685214.306169.3671642013-09-192013-09-20
7Сальников С.А. ($erges)1214-1024509203014.82211.9891532013-09-172013-09-20
8Яцук А.А. (Faust_zp)1200255244831985144.272108.8401372012-07-122012-07-30
9Кузнецов В.С. (herrRo)1185260234421170481.38873.3351222012-02-082013-06-18
10Дроздков А.Н. (anddros)519720024453193812.49311.0661052013-09-182013-09-20
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-09-20
15Кукушкин С.А. (smog)1519120124423880254.999434.955872013-09-062013-09-20
16Зотов П.Г. (Ozzy)116313233911412213.968187.364832012-02-052013-09-16
17Держальцев В.А. (MadVet)3151100223682073143.64299.698812010-12-292011-09-26
18Гринкевич Д.Л. (Дмитрий Гринкевич)1818820124410703127.024258.807772013-09-132013-09-20
19Агапов В. (KERBEROS)117525324408240935.65327.703692013-04-022013-09-12
20Калинин К.А. (kalinin_k)161681692338439927.21536.659602012-06-302013-09-16

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

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1>Vaskevych I. (IvanVas)2628343165125720 Sep 2013
2>Eleas (Ilya U)354352052141620 Sep 2013
3Yu X. (XiaoYu)8893140223420 Sep 2013
4>Вареников Д.М. (Dmitry Varenikov)111223103113420 Sep 2013
5Архипцева М.А. (Arhipceva)1112930281220 Sep 2013
6>Борисенко И.Н. (Igor.N.B.)111152802815320 Sep 2013
7>Movlyanov A.P. (Oct)111412602610220 Sep 2013
8>Панкин Б. (Boris Pankin)12712202245520 Sep 2013
9Kuznetsov L.V. (Baka-Baka)0
01919367520 Sep 2013
10Ганеев Р.Р. (GANRIK)9781701735720 Sep 2013
11>Николаев А.Р. (AndrewN)113817017115520 Sep 2013
12Sidorov (Sidorov)0
01717386919 Sep 2013
13Пятилетов А.А. (MontaG)61191601614019 Sep 2013
14>Куанчалеев А.Б. (Avangard)121715015342820 Sep 2013
15Pertukhno (Julia_P)0
01414510819 Sep 2013
16>Данилов Л.А. (DLeff)102013013308920 Sep 2013
17>Коваленко Д.Ю. (sivrean)8351201296120 Sep 2013
18Карпов А.И. (Askofen)0
01212441620 Sep 2013
19>Иванов (kipling)82211011148720 Sep 2013
20Кирилл (kv_67)92511011277520 Sep 2013

Изучаем SQL

Функция ROUND

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

Рассмотрим такую задачу.

Посчитать средний размер жесткого диска ПК. Результат представить с двумя знаками после десятичной точки.

Выполнив запрос

    SELECT AVG(hd) FROM pc;
мы получим такой результат:
avg_hd
----------------
13.6666666666667

Чтобы выполнить требуемое округление можно воспользоваться функцией ROUND:

    SELECT round(AVG(hd),2) avg_hd FROM pc;

avg_hd
------
13.67

Второй аргумент этой функции как раз указывает число десятичных знаков результата.

Как видно, результат был округлен по арифметическим правилам. Однако у функции ROUND есть третий необязательный аргумент, который говорит о том, округлять ли результат (значение 0 - принимается по умолчанию) или отбрасывать цифры сверх удерживаемых (ненулевое значение).

Т.е. если мы перепишем наш запрос так:

    SELECT round(AVG(hd),2,1) avg_hd FROM pc;

то получим другой результат:

avg_hd
------
13.66

Кстати, округлять можно до любого знака, не только десятичного. Например, чтобы округлять до десятков, сотен и т.д., используется отрицательное значение второго аргумента. Следующий запрос округляет результат до десятков.

    SELECT round(AVG(hd),-1) avg_hd FROM pc;

avg_hd
------
10

Следует отметить, что функция ROUND выполняет округление, но не меняет тип результата. Т.е. если аргумент будет иметь тип dec(12,6), то и результат округления будет того же типа, а именно,

13.670000

В этом легко убедиться, выполнив запрос

    SELECT round(CAST(AVG(hd) AS dec(12,6)),2) avg_hd FROM pc;

Поэтому, если вы хотите избавиться от хвостовых нулей, используйте преобразование к нужному вам типу, например, dec(12,2). Тогда нам и функция ROUND не потребуется. :-)

    SELECT CAST(AVG(hd) AS DEC(12,2)) avg_hd FROM pc;

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

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

В избранное