Трюк дня. Найти медиану
Предположим, есть таблица, содержащая в столбце sales такие записи:
2, 1, 3, 8, 7, 5.
Необходимо найти медиану для данного столбца.
Решение:
В PostgreSQL используйте функцию percentile_count:
В Oracle используйте функцию MEDIAN:
Однако в MySQL подобных функций нет. Поэтому медиану нужно вычислять самостоятельно.
Напомним: медиана - это число, которое находится в середине набора чисел, отсортированных по возрастанию.
#tips
Предположим, есть таблица, содержащая в столбце sales такие записи:
2, 1, 3, 8, 7, 5.
Необходимо найти медиану для данного столбца.
Решение:
В PostgreSQL используйте функцию percentile_count:
SELECT percentile_cont (0.5) WITHIN GROUP (ORDER BY sales) FROM table;В MS SQL также используйте функцию percentile_count:
SELECT percentile_cont (0.5) WITHIN GROUP (ORDER BY sales) OVER (PARTITION BY 1) FROM table;В PARTITION BY можно внести столбец, по которому группируются данные. В данном случае мы использовали 1, чтобы посчитать медиану по всем данным столбца.
В Oracle используйте функцию MEDIAN:
SELECT MEDIAN (sales) OVER (PARTITION BY 1) FROM table;
Однако в MySQL подобных функций нет. Поэтому медиану нужно вычислять самостоятельно.
Напомним: медиана - это число, которое находится в середине набора чисел, отсортированных по возрастанию.
/*задаем переменную row_index = -1, чтобы отсчет индекса начался с 0 */Ответ: медиана = 4.
SET @row_index := -1;
/*находим среднее двух значений в центре отсортированного набора. Охватывает те случаи, когда общее число записей четное*/
SELECT AVG (subq.sales) as median_value
FROM (
SELECT @row_index:=@row_index + 1 AS row_index, sales
FROM table
ORDER BY sales
) AS subq
WHERE subq.row_index
/*выбираем только значения в центре: одно если число записей нечетное и два если четное*/
IN (FLOOR(@row_index / 2) , CEIL(@row_index / 2));
#tips
❤2
Media is too big
VIEW IN TELEGRAM
Функции SQL для символьных данных
В этом видеоуроке автор подробно разбирает процесс работы с символьными (строчными) функциями в SQL.
00:00 Вступление
00:18 Преобразование строки в нижний регистр (LOWER)
00:32 Преобразование строки в верхний регистр (UPPER)
00:55 Получение длины указанной строки (LENGTH)
01:06 Вернуть символ, заданный числовым кодом (CHR)
01:28 Соединить вместе две и более строки (CONCAT)
01:57 Удалить символ с начала или конца строки (TRIM)
02:22 Посимвольная замена значений (TRANSLATE)
03:25 Замена слова в строке другим словом (REPLACE)
04:03 Извлечь часть данных из строки (SUBSTR)
Смотреть это видео на youtube: youtu.be/myYvKpjquGw
В этом видеоуроке автор подробно разбирает процесс работы с символьными (строчными) функциями в SQL.
00:00 Вступление
00:18 Преобразование строки в нижний регистр (LOWER)
00:32 Преобразование строки в верхний регистр (UPPER)
00:55 Получение длины указанной строки (LENGTH)
01:06 Вернуть символ, заданный числовым кодом (CHR)
01:28 Соединить вместе две и более строки (CONCAT)
01:57 Удалить символ с начала или конца строки (TRIM)
02:22 Посимвольная замена значений (TRANSLATE)
03:25 Замена слова в строке другим словом (REPLACE)
04:03 Извлечь часть данных из строки (SUBSTR)
Смотреть это видео на youtube: youtu.be/myYvKpjquGw
Трюк дня. Изменить тип поля с CHARACTER на NUMERIC в PostgreSQL
В PostgreSQL таблице
Напишите запрос, который приведёт данную колонку к типу
Решение будет позже вечером.
#tips
В PostgreSQL таблице
customers
колонка age
имеет тип CHARACTER(20)
. Напишите запрос, который приведёт данную колонку к типу
NUMERIC (10,0)
.Решение будет позже вечером.
#tips
Трюк дня. Изменить тип поля с CHARACTER на NUMERIC в PostgreSQL. Решение
ИЛИ
ALTER TABLE
customers
ALTER
COLUMN age
TYPE NUMERIC (10,0)
USING age::NUMERIC;
ИЛИ
ALTER TABLE
customers
ALTER
COLUMN age
TYPE NUMERIC (10,0)
USING CAST(age AS NUMERIC);
#tipsДаны 2 таблицы А и В, которые содержат поле row. А содержит 10 записей, В - 5 записей. Сколько записей вернет следующий запрос:
select A.row, B.row from A,B
select A.row, B.row from A,B
Anonymous Quiz
11%
5
19%
10
58%
50
12%
Посмотреть ответы
JOIN (соединение таблиц) невозможно осуществить в запросе без:
Anonymous Quiz
38%
ключевого слова JOIN
3%
слова INNER перед JOIN
55%
перечисления соединяемых таблиц
4%
псевдонимов соединяемых таблиц
Какие данные нельзя вставить в таблицу при помощи оператора INSERT?
Anonymous Quiz
8%
повторяющиеся
8%
несколько строк сразу
60%
несколько значений одного столбца в одной строке
25%
неопределенные значения
Выберите корректно составленный запрос с функцией GROUP BY:
Anonymous Quiz
3%
select count(*) from Orders GROUP seller_id;
3%
select seller_id, count(*) from Orders GROUP seller_id;
92%
select seller_id, count(*) from Orders GROUP BY seller_id;
1%
select count(*) from Orders GROUP ON seller_id;
2%
Посмотреть ответ
Что возвращает ROUND(789.8389, 2)?
Anonymous Quiz
67%
789.84
24%
789.83
0%
78
6%
789.00
3%
Узнать ответ
Какие SQL-операции относятся к командам DDL?
Anonymous Quiz
62%
DROP, ALTER
13%
SELECT, CREATE
4%
ALTER, SELECT
11%
UPDATE, MERGE
10%
Посмотреть ответ
🆒3❤1
Каким запросом в MySQL можно получить список всех баз данных?
Anonymous Quiz
67%
SHOW DATABASES
0%
COMMIT
15%
SELECT FROM DATABASES
11%
GET DATABASES
7%
Узнать ответ
👎1💩1
Учитывая, что
name score
Alex 5
Sam 1
Sam 11
NULL 4
NULL 3
Тогда запрос
name sc
Alex 5
Sam 12
NULL 7
#вопросы #собеседование
NULL
в SQL — просто отсутствие значения, то все значения NULL
при группировке попадают в одну группу. Например, пусть есть таблица:name score
Alex 5
Sam 1
Sam 11
NULL 4
NULL 3
Тогда запрос
SELECT name, SUM (score) AS scвыдаст:
FROM table
GROUP BY name;
name sc
Alex 5
Sam 12
NULL 7
#вопросы #собеседование
👍8
Для чего используется LIMIT в запросе
SELECT * FROM Orders LIMIT 10
SELECT * FROM Orders LIMIT 10
Anonymous Quiz
15%
Чтобы вывести рандомные 10 записей из результатов запроса
80%
Чтобы вывести первые 10 записей из результатов запроса
2%
Чтобы вывести все заказы, содержащие число 10
2%
Все варианты неверные
1%
Узнать ответ
С помощью какого запроса можно получить пользователей, в email которых содержится более двух точек?
Anonymous Quiz
17%
SELECT * FROM users WHERE email COUNT(".") > 2;
50%
SELECT * FROM users WHERE email LIKE "%.%.%.%";
25%
SELECT * FROM users WHERE "." IN email MATCHES > 2;
9%
Узнать ответ
При помощи оператора UNION нельзя объединить результаты запросов...
Anonymous Quiz
10%
содержащих подзапросы
76%
с разным числом столбцов
8%
содержащих дубликаты
0%
с количеством столбцов больше трех
5%
Узнать ответ
👍1
Как развиваться разработчику и администратору баз данных?
👉 Наращивать объем знаний и навыков.
Приглашаем на открытый урок «PostgreSQL High-Availability при помощи Patroni» в рамках курса «PostgreSQL для администраторов баз данных и разработчиков» от OTUS
🔹В ходе вебинара рассмотрим создание отказоустойчивого кластера PostgreSQL с использованием такого инструмента как Patroni
Patroni - это Python-приложение для создания высокодоступных PostgreSQL кластеров на основе потоковой репликации
Встречаемся 14 марта в 20:00 мск в рамках курса «PostgreSQL для администраторов баз данных и разработчиков».
👉 Регистрация
https://otus.pw/D84p/?erid=LjN8JyLr4
👉 Наращивать объем знаний и навыков.
Приглашаем на открытый урок «PostgreSQL High-Availability при помощи Patroni» в рамках курса «PostgreSQL для администраторов баз данных и разработчиков» от OTUS
🔹В ходе вебинара рассмотрим создание отказоустойчивого кластера PostgreSQL с использованием такого инструмента как Patroni
Patroni - это Python-приложение для создания высокодоступных PostgreSQL кластеров на основе потоковой репликации
Встречаемся 14 марта в 20:00 мск в рамках курса «PostgreSQL для администраторов баз данных и разработчиков».
👉 Регистрация
https://otus.pw/D84p/?erid=LjN8JyLr4
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Отличаются ли в SQL операторы AND и & (амперсанд)?
Anonymous Quiz
10%
Приоритет AND ниже, чем у &
11%
Приоритет AND выше, чем у &
21%
Между ними нет отличий
46%
Оператор & не поддерживается стандартом SQL
13%
Узнать ответ
💩1
🚀 Готовы стать мастером PostgreSQL?
Присоединяйтесь к открытому онлайн уроку «Управление собственным облачным кластером PostgreSQL на CloudNative PG»!
💎 На этом уроке вы:
- узнаете как настроить отказоустойчивый кластер PostgreSQL с использованием оператора для Kubernetes CloudNative PG;
- промоделируете ситуации отказа отдельных узлов, настроим мониторинг доступности и наблюдение за операционными метриками кластера;
- научитесь делать восстановление состояния на указанный момент времени.
📅 Дата проведения: 28 марта, 20:00 мск
🔗 Регистрируйтесь по ссылке и станьте экспертом в PostgreSQL! Новые навыки ждут вас! 🌟
Присоединяйтесь к открытому онлайн уроку «Управление собственным облачным кластером PostgreSQL на CloudNative PG»!
💎 На этом уроке вы:
- узнаете как настроить отказоустойчивый кластер PostgreSQL с использованием оператора для Kubernetes CloudNative PG;
- промоделируете ситуации отказа отдельных узлов, настроим мониторинг доступности и наблюдение за операционными метриками кластера;
- научитесь делать восстановление состояния на указанный момент времени.
📅 Дата проведения: 28 марта, 20:00 мск
🔗 Регистрируйтесь по ссылке и станьте экспертом в PostgreSQL! Новые навыки ждут вас! 🌟
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🔥1