Пишем на SQL
Open in Telegram
Уроки по SQL. Изучаем базы данных на примере СУБД ORACLE, MySQL, MS SQL Server, PostgreSql Мой курс по SQL и базам данных: https://prime-soft.biz/courses/sql Связь со мной @iliahohlov
Show more1 901
Subscribers
-124 hours
+17 days
-130 days
Posts Archive
1 901
В таблице ORDER_ITEMS нет строк со значением 10 в столбце ID_ORDER. Результат выполнения обеих запросов:
1 901
Добрый день, друзья!
Предлагаю очередную задачу по SQL. Есть два запроса.
Запрос 1:
SELECT o.*,
(SELECT COUNT(*)
FROM ORDER_ITEMS
WHERE ID_ORDER = o.ID) AS COUNT_ITEMS
FROM ORDERS o
WHERE o.ID = 10
Запрос 2:
SELECT o.*,
COALESCE( (SELECT COUNT(*)
FROM ORDER_ITEMS
WHERE ID_ORDER = o.ID), 0) AS COUNT_ITEMS
FROM ORDERS o
WHERE o.ID = 10
1 901
Добрый вечер, дорогие друзья!
Хочу поделиться новым отзывом, который недавно получили от одного из наших учеников! С разрешения ученика публикую его здесь!
Здравствуйте, Илья. Меня Шолпан зовут. Я ваша бывшая студентка. Сегодня я получила оффер (как сейчас модно говорить). Моя работа будет связана непосредственно с SQL. Работодатель, перед собеседованием скинул мне на почту задания по SQL, которые я с легкостью решила. Хочу вам сказать, человеческое спасибо, за то, что вы так доходчиво объясняли материал (а курсов по SQL, я пересмотрела много). Также благодарю Юлию, которая мне помогала с домашними заданиями. После ваших курсов, после полученного багажа знаний, я начала изучать Python, хочу отметить, что я с таким наслаждением слушала преподавателя, потому что мне, основные термины в программировании были понятны, тоесть я не лезла в интернет, что бы находить значение слов, а с удовольствием слушала лектора и получала новые знания.
В понедельник приступаю к новой работе, работать буду с sql. Я выросла на ступень выше. Благодарю вас за ваш талант преподавателя. Успехов вам в вашей работе и семейного счастья.
1 901
Select Round (p.Width * p.Length * p.Height) * p.Items_Count Total_Size1,
Round (p.Width * p.Length * p.Height * p.Items_Count) Total_Size2
From Positions p
1 901
Всем доброго понедельника!
Предлагаю очередную интересную задачу. В этот раз не столько на знания SQL, сколько на знания основ математики.
Могут ли быть при каких-либо значениях ширины (столбец Width), длины (Столбец Length) или высоты (столбец Height) разными значения в столбцах Total_Size1 и Total_Size2?
(Запрос ниже...)
1 901
Спасибо всем за отличные решения!
В нашем случае мы переводили числовые значения года и месяца столбца PERIOD таблицы TABLE_KOEF к ДАТЕ, потому что к датам можно очень легко прибавить месяц (или указанное количество месяцев). Далее обратно преобразовывали полученные даты (в которых было уже на месяц больше) в числовой формат, состоящий опять из номера года и месяца. Полученные расчётные значения мы использовали для соединения с таблицей TABLE_INVOICES. Решили как раз способом, который написал Georgi Fofanov. Только нам нужно было месяц прибавить к тому, что имелось в столбце PERIOD таблицы TABLE_KOEF.
Способ просто прибавить число 1 к значениям столбца PERIOD не подходит, так как, например, прибавление 1 к значению 202312 даст 13ый месяц, а, в этом случае, нам необходимо прибавление года, а значение месяца должно быть единичкой.
Способ с применением аналитических функций, позволяющих брать значение коэффициента со смещением строки, к сожалению, не рассматривали, так как для некоторых значениев PERIOD коэффициенты могли отсутствовать. Эту деталь, к сожалению, не написал в постановке задачи.
Ещё раз всех благодарю за участие!
1 901
Сегодня помогал представителю клиента из Германии с одним запросом. Предлагаю аналогичную задачу и Вам (для гуру):
Есть таблица, содержащая некоторые суммы начислений, пусть называется TABLE_INVOICES, имеющая, среди прочих, следующие поля:
...
PERIOD NUMBER,
AMOUNT NUMBER,
...
В них хранится информация вида:
PERIOD AMOUNT
202403 100.78
202404 90.12
202405 200.51
...
В столбце PERIOD значение года и месяца.
И ещё есть таблица подготовленных коэффициентов для каждого месяца, пусть называется TABLE_KOEF. Имеет, по аналогии с предыдущей таблицей, тоже столбец PERIOD, содержащий год и месяц.
Содержит информацию вида:
PERIOD KOEF
202402 1
202403 0.5
202404 0.75
В таблице TABLE_KOEF столбец PERIOD является первичным ключом.
И теперь что нужно сделать: вывести все записи из таблицы TABLE_INVOICES, и для каждой строки рассчитать произведение значения столбца AMOUNT на коэффициент предыдущего месяца из таблицы TABLE_KOEF.
Буду рад Вашему активному участию! Буду ждать решения и вопросы (если что-то не понятно написал).
1 901
Спасибо всем за активное участие!
Первый вариант решения предыдущей задачи - это использование оператора MINUS (EXCEPT в MS SQL Server).
С помощью оператора MINUS можно вычесть из набора данных, полученным одним SELECT-ом, строки, полученные другим SELECT-ом:
SELECT * FROM TABLE_A
MINUS
SELECT * FROM TABLE_B
Ещё одним простым решением этой задачи будет использование LEFT JOIN-а для проверки наличия данных для таблицы TABLE_A в таблице TABLE_B.
1 901
Всем доброго понедельника!
Решим интересную задачу по SQL?
Даны две таблицы TABLE_A и TABLE_B. В каждой таблице есть всего один столбец: ID типа NUMBER, содержащий числовые значения. В первой таблице в столбце ID значения:
10
20
30
40
50
Во второй таблице в столбце ID значения:
10
30
50.
Необходимо написать запрос, выбирающий значения столбца ID таблицы TABLE_A, которых нет в таблице TABLE_B. При этом запрос нужно написать не используя NOT.
Способы решения задачи напишу, как всегда, попозже!
1 901
Добрый день, друзья!
Следующий вопрос для специалистов ORACLE. В базе данных есть некоторая таблица со столбцом DATE_CREATE с типом DATE. Можно ли в этом столбце сохранить значение даты со временем, например 23.05.2024 13:14:00?
1 901
Подскажите, пожалуйста, в какое время Вам было бы удобно активное участие в вебинарах?
По курсу SQL. Базы данных. ORACLE. MS SQL Server. MySql
1 901
Друзья, спасибо, что изучаете SQL и программирование в PL/SQL (ORACLE) с нами!
У нас небольшое дополнение к курсам!
Теперь у нас будет не только индивидуальное сопровождение (каждого ученика), проверка и разбор решений самостоятельных задач после каждого урока, но и групповые очные вебинары.
Плюсы:
+ совместное решение задач, в том числе и дополнительных;
+ быстрое получение ответов на интересующие вопросы;
+ более близкое общение с менторами и со мной.
Продолжительность каждого вебинара пока планируется 1 час. Чуть позже, если будет нужно, можем увеличить время.
1 901
Друзья, добрый день!
Получили от Вас ещё несколько приятных отзывов после прохождения нашего курса по SQL!
Спасибо!
1 901
Всем доброго понедельника!
Примите ещё одну интересную задачу по SQL. В базе данных есть два представления (views):
v_articles_list и v_articles_stock. Ниже два запроса, которые выводят артикулы из представления v_articles_list, которых нет в представлении v_articles_stock.
Запрос 1:
select *
from v_articles_list
where article_id not in (select article_id from v_articles_stock)
Запрос 2:
select a.*
from v_articles_list a
left join v_articles_stock b
on a.article_id = b.article_id
where b.article_id is null
Available now! Telegram Research 2025 — the year's key insights 
