самый лучший курс💘 все четко, ясно и по порядку, задания практические у автора хорошая речь, которую не скучно и слушать🧨 весь курс универа проходила смотря ваши уроки. Спасибо🤌🏻✨
Идеальный курс, учитывая что он бесплатный. Я думааю качество некоторых платных курсов будет не таким высоким. Просмотрев плейлист, я решил что буду покупать ваш курс по Django.
Можете подсказать, есть ссылка на текстовый вид задачек? Просто на Gitе вроде бы нет :( Спасибо большое за уроки, вообще не видел такого развернутого описания, по сути всего лишь по одному курсу можно выучить SQL на джуна!
@@EngineerSpock В папке HW-functions (если HW - это HomeWork) 10 строчек кода без заданий, может быть не туда смотрю, в любом случае спасибо большое за уроки!
*вот тебе ДЗ* 1. Создать функцию, которая делает бэкап таблицы customers (копирует все данные в другую таблицу), предварительно стирая таблицу для бэкапа, если такая уже существует (чтобы в случае многократного запуска таблица для бэкапа перезатиралась). 2. Создать функцию, которая возвращает средний фрахт (freight) по всем заказам 3. Написать функцию, которая принимает два целочисленных параметра, используемых как нижняя и верхняя границы для генерации случайного числа в пределах этой границы (включая сами граничные значения). Функция random генерирует вещественное число от 0 до 1. Необходимо вычислить разницу между границами и прибавить единицу. На полученное число умножить результат функции random() и прибавить к результату значение нижней границы. Применить функцию floor() к конечному результату, чтобы не "уехать" за границу и получить целое число. 4. Создать функцию, которая возвращает самые низкую и высокую зарплаты среди сотрудников заданного города 5. Создать функцию, которая корректирует зарплату на заданный процент, но не корректирует зарплату, если её уровень превышает заданный уровень при этом верхний уровень зарплаты по умолчанию равен 70, а процент коррекции равен 15%. 6. Модифицировать функцию, корректирующую зарплату таким образом, чтобы в результате коррекции, она так же выводила бы изменённые записи. 7. Модифицировать предыдущую функцию так, чтобы она возвращала только колонки last_name, first_name, title, salary 8. Написать функцию, которая принимает метод доставки и возвращает записи из таблицы orders в которых freight меньше значения, определяемого по следующему алгоритму: - ищем максимум фрахта (freight) среди заказов по заданному методу доставки - корректируем найденный максимум на 30% в сторону понижения - вычисляем среднее значение фрахта среди заказов по заданному методому доставки - вычисляем среднее значение между средним найденным на предыдущем шаге и скорректированным максимумом - возвращаем все заказы в которых значение фрахта меньше найденного на предыдущем шаге среднего 9. Написать функцию, которая принимает: уровень зарплаты, максимальную зарплату (по умолчанию 80) минимальную зарплату (по умолчанию 30), коээфициет роста зарплаты (по умолчанию 20%) Если зарплата выше минимальной, то возвращает false Если зарплата ниже минимальной, то увеличивает зарплату на коэффициент роста и проверяет не станет ли зарплата после повышения превышать максимальную. Если превысит - возвращает false, в противном случае true. Проверить реализацию, передавая следующие параметры (где c - уровень з/п, max - макс. уровень з/п, min - минимальный уровень з/п, r - коэффициент): c = 40, max = 80, min = 30, r = 0.2 - должна вернуть false c = 79, max = 81, min = 80, r = 0.2 - должна вернуть false c = 79, max = 95, min = 80, r = 0.2 - должна вернуть true
1:36:43 Хотя технически автор не нарушает своего условия, искать общее количество заказов по всем шип_виа исходя из вычисленной средней фрахты по одному шип_виа немножко странно. Оставляю, кстати, свое решение, мало ли кому понравится. CREATE OR REPLACE FUNCTION return_by_freight (val_ship_via smallint) RETURNS SETOF orders AS $$ SELECT * FROM orders WHERE freight < (SELECT (MAX(freight)*0.7+AVG(freight))/2 from orders WHERE ship_via = val_ship_via GROUP BY ship_via) AND ship_via = val_ship_via $$ Language sql; select count(*) from return_by_freight(CAST(1 AS smallint)); Если убрать AND ship_via = val_ship_via, ответ отличается на два. Вполне возможно, что у меня где-то не достает две заветные записи до равной с автором цифрой.
1:20:14 Я нашёл этот пример на postgresqltutorial Разве нельзя без floor() обойтись? Если мы указываем тип данных int, то тут всяко не будет числа с точкой. Это если бы real был, тогда да, согласен.
*Держи ДЗ* 1. Создать функцию, которая делает бэкап таблицы customers (копирует все данные в другую таблицу), предварительно стирая таблицу для бэкапа, если такая уже существует (чтобы в случае многократного запуска таблица для бэкапа перезатиралась). 2. Создать функцию, которая возвращает средний фрахт (freight) по всем заказам 3. Написать функцию, которая принимает два целочисленных параметра, используемых как нижняя и верхняя границы для генерации случайного числа в пределах этой границы (включая сами граничные значения). Функция random генерирует вещественное число от 0 до 1. Необходимо вычислить разницу между границами и прибавить единицу. На полученное число умножить результат функции random() и прибавить к результату значение нижней границы. Применить функцию floor() к конечному результату, чтобы не "уехать" за границу и получить целое число. 4. Создать функцию, которая возвращает самые низкую и высокую зарплаты среди сотрудников заданного города 5. Создать функцию, которая корректирует зарплату на заданный процент, но не корректирует зарплату, если её уровень превышает заданный уровень при этом верхний уровень зарплаты по умолчанию равен 70, а процент коррекции равен 15%. 6. Модифицировать функцию, корректирующую зарплату таким образом, чтобы в результате коррекции, она так же выводила бы изменённые записи. 7. Модифицировать предыдущую функцию так, чтобы она возвращала только колонки last_name, first_name, title, salary 8. Написать функцию, которая принимает метод доставки и возвращает записи из таблицы orders в которых freight меньше значения, определяемого по следующему алгоритму: - ищем максимум фрахта (freight) среди заказов по заданному методу доставки - корректируем найденный максимум на 30% в сторону понижения - вычисляем среднее значение фрахта среди заказов по заданному методому доставки - вычисляем среднее значение между средним найденным на предыдущем шаге и скорректированным максимумом - возвращаем все заказы в которых значение фрахта меньше найденного на предыдущем шаге среднего 9. Написать функцию, которая принимает: уровень зарплаты, максимальную зарплату (по умолчанию 80) минимальную зарплату (по умолчанию 30), коээфициет роста зарплаты (по умолчанию 20%) Если зарплата выше минимальной, то возвращает false Если зарплата ниже минимальной, то увеличивает зарплату на коэффициент роста и проверяет не станет ли зарплата после повышения превышать максимальную. Если превысит - возвращает false, в противном случае true. Проверить реализацию, передавая следующие параметры (где c - уровень з/п, max - макс. уровень з/п, min - минимальный уровень з/п, r - коэффициент): c = 40, max = 80, min = 30, r = 0.2 - должна вернуть false c = 79, max = 81, min = 80, r = 0.2 - должна вернуть false c = 79, max = 95, min = 80, r = 0.2 - должна вернуть true
Вы такой умный, такой молодец, так вы уже решили задачу как сохранять связанный список? Или так всем и предложите те костыли в приложении типа скриптов которыми все пользуются.
Данный курс на RUclips - сильно укороченная (демо) версия полного курса, который вы можете приобрести на stepik (с карточкой из РФ) или Udemy (с карточкой не из РФ) Купить полный курс на stepik: www.engineerspock.com/buy-postgres-youtube-stepik - получите скидку 30% Купить полный курс на udemy: www.engineerspock.com/buy-postgres-youtube-udemy Все курсы от EngineerSpock: www.engineerspock.com/offer-spock-youtube ***** Подпишись на канал в Telegram: t.me/engineerspock_it Подписка на Boosty: boosty.to/engineerspock Донаты на развитие: pay.cloudtips.ru/p/1f080f72 Чат в Telegram: t.me/python_devs Ссылка на репозиторий в GitHub: github.com/EngineerSpock/postgres-course-ru *****
36:50 я бы поправил: drop function if exists get_season; create or replace function get_season(month_number int) returns text AS $$ declare season text; begin if month_number BETWEEN 3 and 5 then season = 'Spring'; elsif month_number BETWEEN 6 and 8 then season = 'Summer'; elsif month_number BETWEEN 9 and 11 then season = 'Autumn'; elsif month_number BETWEEN 1 and 2 OR month_number = 12 then season = 'Winter'; else season = 'error'; end if; return season; end; $$ language plpgsql; select get_season(12)
1:12:06 дз (09-дз.sql) нету на гите - ни заданий не решений: вот: -- 1 -- создать функию которая делает бэкап таблицы customers в другую таблицу, предварительно стирая таблицу дл бэкапа если такая существует create or replace function backup_customers() returns void as $$ drop table if exists backup_customers; create table backup_customers as select * from customers; --select * into backup_customers --from customers; $$ language sql; select backup_customers(); select count(*) from customers; -- 2 -- создать функию которая возвращает средний фрахт create or replace function get_avg_freight() returns float8 as $$ select avg(freight) from orders; $$ language sql ; select * from get_avg_freight(); -- 3 -- создать функцию которая принимает два числовых параметра - пределов для генерации случайного числа между ними create or replace function random_between(low int, high int) returns int as $$ begin return floor(random() * (high - low + 1) + low); end $$ language plpgsql ; select random_between(0, 1) from generate_series(1,10) -- 4 -- создать функцию которая возвращает самую низкую и самыю высокую зарплату сотрудников в данном городе create or replace function get_salary_bounds_by_city(emp_city varchar, out min_salary numeric , out max_salary numeric ) as $$ select MIN(salary), MAX(salary) from employees where city = emp_city $$ language sql; select * from get_salary_bounds_by_city('London'); -- 5 -- создать функцию которая корректирует зарплату на некоторый заданный процент из входящего аргумента, но не корректирует если текущий уровень -- зарплаты равен некоторому заданному верхнему уровню. При этом верхний уровень зарплаты по-умолчанию равен 70, процент коррекции равен 15% create or replace function correct_salary(upper_boundary numeric default 100, correction_rate numeric default 0.15) returns void as $$ update employees set salary = salary + (salary * correction_rate) where salary max_salary then return false; else return true; end if; END $$ language plpgsql; select should_increase_salary(40, 80, 30, 0.2); select should_increase_salary(79, 81, 80, 0.2); select should_increase_salary(79, 95, 80, 0.2);
CREATE OR REPLACE FUNCTION sum_product(discont int) RETURNS bigint AS $$ BEGIN RETURN sum(units_in_stock) FROM products WHERE discont = discontinued; END; $$ LANGUAGE plpgsql Вот не могу понять, попробовал впихнуть сюда такой функционал. Если вызвать голую функцию, он решит ее как мы на примере из видео, заигнорив что туда нужно вбить 1 или 0 , будто есть DEFAULT на выполение функции без доп функционала о_О не понял почему
Пришлось самостоятельно добавить. Вот вам функция добавки рандомных зарплат в пределах 100 условных единиц. CREATE OR REPLACE FUNCTION AddRandomSalaries() RETURNS VOID AS $$ BEGIN ALTER TABLE employees ADD COLUMN IF NOT EXISTS salary NUMERIC; -- Добавляем столбец "salary" в таблицу "employees" -- Заполняем столбец "salary" случайными значениями для первых 9 строк EXECUTE 'UPDATE employees SET salary = (random() * 100)::double precision WHERE employee_id IN (SELECT employee_id FROM employees LIMIT 9)'; END; $$ LANGUAGE plpgsql; SELECT AddRandomSalaries(); -- Вызываем функцию SELECT employee_id, salary FROM employees ORDER BY employee_id; -- Проверяем
Думаю кто программировал на процедурных языках такой код для Фибоначи понятнее будет: CREATE OR REPLACE FUNCTION GetFibonachi(n int) RETURNS int AS $$ DECLARE fibonachi int = 0; pred int = 0; tek int = 1; BEGIN IF (n
самый лучший курс💘
все четко, ясно и по порядку, задания практические
у автора хорошая речь, которую не скучно и слушать🧨
весь курс универа проходила смотря ваши уроки. Спасибо🤌🏻✨
Большое спасибо. Вы спасли жизнь как минимум одного человека =) Очень подробно и кратко, ничего лишнего. Подписка однозначно.
Идеальный курс, учитывая что он бесплатный. Я думааю качество некоторых платных курсов будет не таким высоким. Просмотрев плейлист, я решил что буду покупать ваш курс по Django.
Потрясающее видео!
Хороший курс по PostgreSQL, однако я искала объяснения WITH TABL AS (если я ничего не пропустила). Было бы отлично, если бы показали и это.
Спасибо больше тебе за твои старания. Все доступно и понятно)
Только дз не могу найти по ссылке в описании. Там находятся только скрипты из урока.
Спасибо, за ваш труд. Материал действительно очень хорош
22:05 Периметр -- это сумма всех сторон многоугольника. БЕЗ деления на 2
Ляпнул, да. Это semi-perimeter
👍👍👍, многим людям поможет.
Спасибо за видео.Коммент в поддержку!
Можете подсказать, есть ссылка на текстовый вид задачек? Просто на Gitе вроде бы нет :(
Спасибо большое за уроки, вообще не видел такого развернутого описания, по сути всего лишь по одному курсу можно выучить SQL на джуна!
Есть там все на гите
@@EngineerSpock В папке HW-functions (если HW - это HomeWork) 10 строчек кода без заданий, может быть не туда смотрю, в любом случае спасибо большое за уроки!
@@daniil6779 гляну
@@EngineerSpock И все же - нет ДЗ по уроку:(
*вот тебе ДЗ*
1. Создать функцию, которая делает бэкап таблицы customers (копирует все данные в другую таблицу), предварительно стирая таблицу для бэкапа, если такая уже существует (чтобы в случае многократного запуска таблица для бэкапа перезатиралась).
2. Создать функцию, которая возвращает средний фрахт (freight) по всем заказам
3. Написать функцию, которая принимает два целочисленных параметра, используемых как нижняя и верхняя границы для генерации случайного числа в пределах этой границы (включая сами граничные значения).
Функция random генерирует вещественное число от 0 до 1.
Необходимо вычислить разницу между границами и прибавить единицу.
На полученное число умножить результат функции random() и прибавить к результату значение нижней границы.
Применить функцию floor() к конечному результату, чтобы не "уехать" за границу и получить целое число.
4. Создать функцию, которая возвращает самые низкую и высокую зарплаты среди сотрудников заданного города
5. Создать функцию, которая корректирует зарплату на заданный процент, но не корректирует зарплату, если её уровень превышает заданный уровень при этом верхний уровень зарплаты по умолчанию равен 70, а процент коррекции равен 15%.
6. Модифицировать функцию, корректирующую зарплату таким образом, чтобы в результате коррекции, она так же выводила бы изменённые записи.
7. Модифицировать предыдущую функцию так, чтобы она возвращала только колонки last_name, first_name, title, salary
8. Написать функцию, которая принимает метод доставки и возвращает записи из таблицы orders в которых freight меньше значения, определяемого по следующему алгоритму:
- ищем максимум фрахта (freight) среди заказов по заданному методу доставки
- корректируем найденный максимум на 30% в сторону понижения
- вычисляем среднее значение фрахта среди заказов по заданному методому доставки
- вычисляем среднее значение между средним найденным на предыдущем шаге и скорректированным максимумом
- возвращаем все заказы в которых значение фрахта меньше найденного на предыдущем шаге среднего
9. Написать функцию, которая принимает:
уровень зарплаты, максимальную зарплату (по умолчанию 80) минимальную зарплату (по умолчанию 30), коээфициет роста зарплаты (по умолчанию 20%)
Если зарплата выше минимальной, то возвращает false
Если зарплата ниже минимальной, то увеличивает зарплату на коэффициент роста и проверяет не станет ли зарплата после повышения превышать максимальную.
Если превысит - возвращает false, в противном случае true.
Проверить реализацию, передавая следующие параметры
(где c - уровень з/п, max - макс. уровень з/п, min - минимальный уровень з/п, r - коэффициент):
c = 40, max = 80, min = 30, r = 0.2 - должна вернуть false
c = 79, max = 81, min = 80, r = 0.2 - должна вернуть false
c = 79, max = 95, min = 80, r = 0.2 - должна вернуть true
1:36:43 Хотя технически автор не нарушает своего условия, искать общее количество заказов по всем шип_виа исходя из вычисленной средней фрахты по одному шип_виа немножко странно. Оставляю, кстати, свое решение, мало ли кому понравится.
CREATE OR REPLACE FUNCTION return_by_freight (val_ship_via smallint) RETURNS SETOF orders AS $$
SELECT * FROM orders
WHERE freight < (SELECT (MAX(freight)*0.7+AVG(freight))/2 from orders
WHERE ship_via = val_ship_via
GROUP BY ship_via) AND ship_via = val_ship_via
$$ Language sql;
select count(*) from return_by_freight(CAST(1 AS smallint));
Если убрать AND ship_via = val_ship_via, ответ отличается на два. Вполне возможно, что у меня где-то не достает две заветные записи до равной с автором цифрой.
я обязательно отправлю денег с первой зарплаты. этот курс этого заслуживает
EXIT WHEN count = 5
1, 1, 2, 3
fib(4)
3
да, правильно, там не больше n должно быть ка кв уроке, а равно!
1:20:14 Я нашёл этот пример на postgresqltutorial
Разве нельзя без floor() обойтись? Если мы указываем тип данных int, то тут всяко не будет числа с точкой. Это если бы real был, тогда да, согласен.
Здорово! Спасибо.
Нет ДЗ по этой части лекций, учитель. Хоть вы и озвучиваете каждое задание перед решением, но мы привыкли получать задания целиком отдельно.
*Держи ДЗ*
1. Создать функцию, которая делает бэкап таблицы customers (копирует все данные в другую таблицу), предварительно стирая таблицу для бэкапа, если такая уже существует (чтобы в случае многократного запуска таблица для бэкапа перезатиралась).
2. Создать функцию, которая возвращает средний фрахт (freight) по всем заказам
3. Написать функцию, которая принимает два целочисленных параметра, используемых как нижняя и верхняя границы для генерации случайного числа в пределах этой границы (включая сами граничные значения).
Функция random генерирует вещественное число от 0 до 1.
Необходимо вычислить разницу между границами и прибавить единицу.
На полученное число умножить результат функции random() и прибавить к результату значение нижней границы.
Применить функцию floor() к конечному результату, чтобы не "уехать" за границу и получить целое число.
4. Создать функцию, которая возвращает самые низкую и высокую зарплаты среди сотрудников заданного города
5. Создать функцию, которая корректирует зарплату на заданный процент, но не корректирует зарплату, если её уровень превышает заданный уровень при этом верхний уровень зарплаты по умолчанию равен 70, а процент коррекции равен 15%.
6. Модифицировать функцию, корректирующую зарплату таким образом, чтобы в результате коррекции, она так же выводила бы изменённые записи.
7. Модифицировать предыдущую функцию так, чтобы она возвращала только колонки last_name, first_name, title, salary
8. Написать функцию, которая принимает метод доставки и возвращает записи из таблицы orders в которых freight меньше значения, определяемого по следующему алгоритму:
- ищем максимум фрахта (freight) среди заказов по заданному методу доставки
- корректируем найденный максимум на 30% в сторону понижения
- вычисляем среднее значение фрахта среди заказов по заданному методому доставки
- вычисляем среднее значение между средним найденным на предыдущем шаге и скорректированным максимумом
- возвращаем все заказы в которых значение фрахта меньше найденного на предыдущем шаге среднего
9. Написать функцию, которая принимает:
уровень зарплаты, максимальную зарплату (по умолчанию 80) минимальную зарплату (по умолчанию 30), коээфициет роста зарплаты (по умолчанию 20%)
Если зарплата выше минимальной, то возвращает false
Если зарплата ниже минимальной, то увеличивает зарплату на коэффициент роста и проверяет не станет ли зарплата после повышения превышать максимальную.
Если превысит - возвращает false, в противном случае true.
Проверить реализацию, передавая следующие параметры
(где c - уровень з/п, max - макс. уровень з/п, min - минимальный уровень з/п, r - коэффициент):
c = 40, max = 80, min = 30, r = 0.2 - должна вернуть false
c = 79, max = 81, min = 80, r = 0.2 - должна вернуть false
c = 79, max = 95, min = 80, r = 0.2 - должна вернуть true
Вы такой умный, такой молодец, так вы уже решили задачу как сохранять связанный список? Или так всем и предложите те костыли в приложении типа скриптов которыми все пользуются.
22:30 у вас не периметр, а полупериметр, не надо путать)
37:43 если выполнить запрос SELECT get_season(13); то функция вернет "зима" )
Да мы не делали здесь защиту от дурака. Возможно там где с ошибками работаем это поправим, но точно уже не помню
Данный курс на RUclips - сильно укороченная (демо) версия полного курса, который вы можете приобрести на stepik (с карточкой из РФ) или Udemy (с карточкой не из РФ)
Купить полный курс на stepik:
www.engineerspock.com/buy-postgres-youtube-stepik - получите скидку 30%
Купить полный курс на udemy:
www.engineerspock.com/buy-postgres-youtube-udemy
Все курсы от EngineerSpock: www.engineerspock.com/offer-spock-youtube
*****
Подпишись на канал в Telegram: t.me/engineerspock_it
Подписка на Boosty: boosty.to/engineerspock
Донаты на развитие: pay.cloudtips.ru/p/1f080f72
Чат в Telegram: t.me/python_devs
Ссылка на репозиторий в GitHub: github.com/EngineerSpock/postgres-course-ru
*****
36:50
я бы поправил:
drop function if exists get_season;
create or replace function get_season(month_number int) returns text AS $$
declare
season text;
begin
if month_number BETWEEN 3 and 5 then
season = 'Spring';
elsif month_number BETWEEN 6 and 8 then
season = 'Summer';
elsif month_number BETWEEN 9 and 11 then
season = 'Autumn';
elsif month_number BETWEEN 1 and 2 OR month_number = 12 then
season = 'Winter';
else
season = 'error';
end if;
return season;
end;
$$ language plpgsql;
select get_season(12)
1:12:06
дз (09-дз.sql) нету на гите - ни заданий не решений:
вот:
-- 1
-- создать функию которая делает бэкап таблицы customers в другую таблицу, предварительно стирая таблицу дл бэкапа если такая существует
create or replace function backup_customers() returns void as $$
drop table if exists backup_customers;
create table backup_customers as
select * from customers;
--select * into backup_customers
--from customers;
$$ language sql;
select backup_customers();
select count(*) from customers;
-- 2
-- создать функию которая возвращает средний фрахт
create or replace function get_avg_freight() returns float8 as $$
select avg(freight)
from orders;
$$ language sql ;
select * from get_avg_freight();
-- 3
-- создать функцию которая принимает два числовых параметра - пределов для генерации случайного числа между ними
create or replace function random_between(low int, high int) returns int as $$
begin
return floor(random() * (high - low + 1) + low);
end
$$ language plpgsql ;
select random_between(0, 1)
from generate_series(1,10)
-- 4
-- создать функцию которая возвращает самую низкую и самыю высокую зарплату сотрудников в данном городе
create or replace function get_salary_bounds_by_city(emp_city varchar, out min_salary numeric , out max_salary numeric ) as $$
select MIN(salary), MAX(salary)
from employees
where city = emp_city
$$ language sql;
select * from get_salary_bounds_by_city('London');
-- 5
-- создать функцию которая корректирует зарплату на некоторый заданный процент из входящего аргумента, но не корректирует если текущий уровень
-- зарплаты равен некоторому заданному верхнему уровню. При этом верхний уровень зарплаты по-умолчанию равен 70, процент коррекции равен 15%
create or replace function correct_salary(upper_boundary numeric default 100, correction_rate numeric default 0.15)
returns void as $$
update employees
set salary = salary + (salary * correction_rate)
where salary max_salary then
return false;
else
return true;
end if;
END
$$ language plpgsql;
select should_increase_salary(40, 80, 30, 0.2);
select should_increase_salary(79, 81, 80, 0.2);
select should_increase_salary(79, 95, 80, 0.2);
CREATE OR REPLACE FUNCTION sum_product(discont int) RETURNS bigint AS $$
BEGIN
RETURN sum(units_in_stock)
FROM products
WHERE discont = discontinued;
END;
$$ LANGUAGE plpgsql
Вот не могу понять, попробовал впихнуть сюда такой функционал. Если вызвать голую функцию, он решит ее как мы на примере из видео, заигнорив что туда нужно вбить 1 или 0 , будто есть DEFAULT на выполение функции без доп функционала о_О не понял почему
где можно найти дз?
1:23:11 у меня попросту нету столбца Salary в табличке Employees
1:24:12 воо вот я об этом
а когда "мы сами добавили" salary ???
Пришлось самостоятельно добавить. Вот вам функция добавки рандомных зарплат в пределах 100 условных единиц.
CREATE OR REPLACE FUNCTION AddRandomSalaries() RETURNS VOID AS $$
BEGIN
ALTER TABLE employees ADD COLUMN IF NOT EXISTS salary NUMERIC; -- Добавляем столбец "salary" в таблицу "employees"
-- Заполняем столбец "salary" случайными значениями для первых 9 строк
EXECUTE 'UPDATE employees
SET salary = (random() * 100)::double precision
WHERE employee_id IN (SELECT employee_id FROM employees LIMIT 9)';
END;
$$ LANGUAGE plpgsql;
SELECT AddRandomSalaries(); -- Вызываем функцию
SELECT employee_id, salary FROM employees ORDER BY employee_id; -- Проверяем
Вопрос
Как работает % в RAISE NOTICE 'Counter: %', counter;
Подставляет на место % значение counter
gde users? ili roles? like create role or user.
ty vse zdachi sdelal postgres superuser
Долгие лекции трудно слушать, лучше было бы разбитое по частям одно видео. Но всёравно, так курс очень полезный благодарю)
Таймкоды не помогают?
Мозг иначе воспринимает информацию, хочется сразу и залпом пройти🤣
Этот же курс разбитый на кусочки ruclips.net/p/PLXo5HrBxMS-2pY6zA6iKyKZLwwTiCrGME существует
@@ivanshipilov4265 То что надо)
@@ivanshipilov4265 Плейлист не существует
1:24:20
Думаю кто программировал на процедурных языках такой код для Фибоначи понятнее будет:
CREATE OR REPLACE FUNCTION GetFibonachi(n int) RETURNS int AS
$$
DECLARE
fibonachi int = 0;
pred int = 0;
tek int = 1;
BEGIN
IF (n