Доброе утро, друзья!
На просторах интернета нашёл небольшую задачку по SQL. Дана пустая таблица publisher с колонками id и name. На id стоит автоинкремент, а столбец name имеет тип varchar(40). Какой из следующих запросов не сможет быть выполнен:
На просторах интернета нашёл небольшую задачку по SQL. Дана пустая таблица publisher с колонками id и name. На id стоит автоинкремент, а столбец name имеет тип varchar(40). Какой из следующих запросов не сможет быть выполнен:
Anonymous Quiz
2%
INSERT INTO publisher (name) VALUES ('OREILLY');
6%
INSERT INTO publisher (name) VALUES ('О Reilly');
87%
INSERT INTO publisher (name) VALUES ('O'Reilly');
5%
INSERT INTO publisher (name) VALUES ('O-Reilly');
Добрый день, друзья!
В таблице ORDERS всего 5 строк. Столбец LEAD_TYPE (тип данных INT) содержит следующие значения:1, 2, 2, 2, 3. Запрос SELECT COUNT(1) FROM ORDERS WHERE LEAD_TYPE = 2 LIMIT 2 (синтаксис MySql) вернёт значение:
В таблице ORDERS всего 5 строк. Столбец LEAD_TYPE (тип данных INT) содержит следующие значения:1, 2, 2, 2, 3. Запрос SELECT COUNT(1) FROM ORDERS WHERE LEAD_TYPE = 2 LIMIT 2 (синтаксис MySql) вернёт значение:
Anonymous Quiz
4%
0
12%
1
48%
2
30%
3
2%
4
1%
5
4%
NULL
Здравствуйте, друзья!
Недавно выкладывал очередную SQL задачу, но из-за опечатки, которую Вы у меня нашли уже за первые 10 минут после публикации, пришлось задачу удалить 🙂
Публикую повторно (с корректировкой):
В таблице TEMP_TABLE не известное количество строк. В качестве начальных условий задачи не известны и значения поля FLD1 таблицы. Аналитик выполнил запрос SELECT COUNT(FLD1), MIN(FLD1), MAX(FLD1) FROM TEMP_TABLE и увидел, что все три значения одинаковые.
Недавно выкладывал очередную SQL задачу, но из-за опечатки, которую Вы у меня нашли уже за первые 10 минут после публикации, пришлось задачу удалить 🙂
Публикую повторно (с корректировкой):
В таблице TEMP_TABLE не известное количество строк. В качестве начальных условий задачи не известны и значения поля FLD1 таблицы. Аналитик выполнил запрос SELECT COUNT(FLD1), MIN(FLD1), MAX(FLD1) FROM TEMP_TABLE и увидел, что все три значения одинаковые.
👍8
Какое значение мог увидеть аналитик из ниже перечисленных?
Anonymous Quiz
33%
Null
1%
-1
18%
0
48%
1
👍3
Всем доброго понедельника!
Примите ещё одну интересную задачу по 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
Примите ещё одну интересную задачу по 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
Могут ли эти запросы в каком-либо случае вернуть разный результат?
Anonymous Quiz
45%
Да, Запрос 1 может вернуть меньше строк
25%
Да, Запрос 2 может вернуть меньше строк
30%
Нет, Запрос 1 и Запрос 2 всегда будут возвращать одинаковый набор данных
IMG_20240426_171847_369.jpg
14.1 KB
Друзья, добрый день!
Получили от Вас ещё несколько приятных отзывов после прохождения нашего курса по SQL!
Спасибо!
Получили от Вас ещё несколько приятных отзывов после прохождения нашего курса по SQL!
Спасибо!
👍3
Друзья, спасибо, что изучаете SQL и программирование в PL/SQL (ORACLE) с нами!
У нас небольшое дополнение к курсам!
Теперь у нас будет не только индивидуальное сопровождение (каждого ученика), проверка и разбор решений самостоятельных задач после каждого урока, но и групповые очные вебинары.
Плюсы:
+ совместное решение задач, в том числе и дополнительных;
+ быстрое получение ответов на интересующие вопросы;
+ более близкое общение с менторами и со мной.
Продолжительность каждого вебинара пока планируется 1 час. Чуть позже, если будет нужно, можем увеличить время.
У нас небольшое дополнение к курсам!
Теперь у нас будет не только индивидуальное сопровождение (каждого ученика), проверка и разбор решений самостоятельных задач после каждого урока, но и групповые очные вебинары.
Плюсы:
+ совместное решение задач, в том числе и дополнительных;
+ быстрое получение ответов на интересующие вопросы;
+ более близкое общение с менторами и со мной.
Продолжительность каждого вебинара пока планируется 1 час. Чуть позже, если будет нужно, можем увеличить время.
🔥6👍1
Подскажите, пожалуйста, в какое время Вам было бы удобно активное участие в вебинарах?
По курсу SQL. Базы данных. ORACLE. MS SQL Server. MySql
По курсу SQL. Базы данных. ORACLE. MS SQL Server. MySql
Anonymous Poll
13%
В будни в рабочее время;
53%
В будни в 19:30;
34%
В субботу в 9:30.
По курсу Программирования в PL/SQL (ORACLE)
Anonymous Poll
14%
В будни в рабочее время;
58%
В будни в 19:30;
35%
В субботу в 9:30.
Добрый день, друзья!
Следующий вопрос для специалистов ORACLE. В базе данных есть некоторая таблица со столбцом DATE_CREATE с типом DATE. Можно ли в этом столбце сохранить значение даты со временем, например 23.05.2024 13:14:00?
Следующий вопрос для специалистов ORACLE. В базе данных есть некоторая таблица со столбцом DATE_CREATE с типом DATE. Можно ли в этом столбце сохранить значение даты со временем, например 23.05.2024 13:14:00?
Anonymous Quiz
54%
Да, можно
28%
Нет, при сохранении время обрежется. Сохранится только дата
18%
Нет, при сохранении даты со временем в столбец типа DATE будет SQL ошибка.
Всем доброго понедельника!
Решим интересную задачу по SQL?
Даны две таблицы TABLE_A и TABLE_B. В каждой таблице есть всего один столбец: ID типа NUMBER, содержащий числовые значения. В первой таблице в столбце ID значения:
10
20
30
40
50
Во второй таблице в столбце ID значения:
10
30
50.
Необходимо написать запрос, выбирающий значения столбца ID таблицы TABLE_A, которых нет в таблице TABLE_B. При этом запрос нужно написать не используя NOT.
Способы решения задачи напишу, как всегда, попозже!
Решим интересную задачу по SQL?
Даны две таблицы TABLE_A и TABLE_B. В каждой таблице есть всего один столбец: ID типа NUMBER, содержащий числовые значения. В первой таблице в столбце ID значения:
10
20
30
40
50
Во второй таблице в столбце ID значения:
10
30
50.
Необходимо написать запрос, выбирающий значения столбца ID таблицы TABLE_A, которых нет в таблице TABLE_B. При этом запрос нужно написать не используя NOT.
Способы решения задачи напишу, как всегда, попозже!
Спасибо всем за активное участие!
Первый вариант решения предыдущей задачи - это использование оператора MINUS (EXCEPT в MS SQL Server).
С помощью оператора MINUS можно вычесть из набора данных, полученным одним SELECT-ом, строки, полученные другим SELECT-ом:
SELECT * FROM TABLE_A
MINUS
SELECT * FROM TABLE_B
Ещё одним простым решением этой задачи будет использование LEFT JOIN-а для проверки наличия данных для таблицы TABLE_A в таблице TABLE_B.
Первый вариант решения предыдущей задачи - это использование оператора MINUS (EXCEPT в MS SQL Server).
С помощью оператора MINUS можно вычесть из набора данных, полученным одним SELECT-ом, строки, полученные другим SELECT-ом:
SELECT * FROM TABLE_A
MINUS
SELECT * FROM TABLE_B
Ещё одним простым решением этой задачи будет использование LEFT JOIN-а для проверки наличия данных для таблицы TABLE_A в таблице TABLE_B.
👍9
Сегодня помогал представителю клиента из Германии с одним запросом. Предлагаю аналогичную задачу и Вам (для гуру):
Есть таблица, содержащая некоторые суммы начислений, пусть называется 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.
Буду рад Вашему активному участию! Буду ждать решения и вопросы (если что-то не понятно написал).
Есть таблица, содержащая некоторые суммы начислений, пусть называется 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.
Буду рад Вашему активному участию! Буду ждать решения и вопросы (если что-то не понятно написал).
👍3
Спасибо всем за отличные решения!
В нашем случае мы переводили числовые значения года и месяца столбца PERIOD таблицы TABLE_KOEF к ДАТЕ, потому что к датам можно очень легко прибавить месяц (или указанное количество месяцев). Далее обратно преобразовывали полученные даты (в которых было уже на месяц больше) в числовой формат, состоящий опять из номера года и месяца. Полученные расчётные значения мы использовали для соединения с таблицей TABLE_INVOICES. Решили как раз способом, который написал Georgi Fofanov. Только нам нужно было месяц прибавить к тому, что имелось в столбце PERIOD таблицы TABLE_KOEF.
Способ просто прибавить число 1 к значениям столбца PERIOD не подходит, так как, например, прибавление 1 к значению 202312 даст 13ый месяц, а, в этом случае, нам необходимо прибавление года, а значение месяца должно быть единичкой.
Способ с применением аналитических функций, позволяющих брать значение коэффициента со смещением строки, к сожалению, не рассматривали, так как для некоторых значениев PERIOD коэффициенты могли отсутствовать. Эту деталь, к сожалению, не написал в постановке задачи.
Ещё раз всех благодарю за участие!
В нашем случае мы переводили числовые значения года и месяца столбца PERIOD таблицы TABLE_KOEF к ДАТЕ, потому что к датам можно очень легко прибавить месяц (или указанное количество месяцев). Далее обратно преобразовывали полученные даты (в которых было уже на месяц больше) в числовой формат, состоящий опять из номера года и месяца. Полученные расчётные значения мы использовали для соединения с таблицей TABLE_INVOICES. Решили как раз способом, который написал Georgi Fofanov. Только нам нужно было месяц прибавить к тому, что имелось в столбце PERIOD таблицы TABLE_KOEF.
Способ просто прибавить число 1 к значениям столбца PERIOD не подходит, так как, например, прибавление 1 к значению 202312 даст 13ый месяц, а, в этом случае, нам необходимо прибавление года, а значение месяца должно быть единичкой.
Способ с применением аналитических функций, позволяющих брать значение коэффициента со смещением строки, к сожалению, не рассматривали, так как для некоторых значениев PERIOD коэффициенты могли отсутствовать. Эту деталь, к сожалению, не написал в постановке задачи.
Ещё раз всех благодарю за участие!
👍3❤1
Всем доброго понедельника!
Предлагаю очередную интересную задачу. В этот раз не столько на знания SQL, сколько на знания основ математики.
Могут ли быть при каких-либо значениях ширины (столбец Width), длины (Столбец Length) или высоты (столбец Height) разными значения в столбцах Total_Size1 и Total_Size2?
Предлагаю очередную интересную задачу. В этот раз не столько на знания SQL, сколько на знания основ математики.
Могут ли быть при каких-либо значениях ширины (столбец Width), длины (Столбец Length) или высоты (столбец Height) разными значения в столбцах Total_Size1 и Total_Size2?
👍1
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
Round (p.Width * p.Length * p.Height * p.Items_Count) Total_Size2
From Positions p
Anonymous Quiz
33%
Нет, при любых значениях Width, Length и Height, результат в Total_Size1 и Total_Size2 одинаков
67%
Да, при некоторыз значениях Width, Length или Height, результат в Total_Size1 и Total_Size2 разный
👍1