IliaHohlov

IliaHohlov

Студия Прайм
На Пикабу
4M4DEUS
4M4DEUS оставил первый донат
поставил 2 плюса и 0 минусов
отредактировал 1 пост
проголосовал за 1 редактирование
5893 рейтинг 671 подписчик 1 подписка 78 постов 15 в горячем

SQL задача по оконным функциям

Всем привет!

Как начёт ещё одной задачи по SQL задачу с нашего Телеграм-канала?

В таблице SALES_TOTAL хранятся итоги по продажам каждого товара за каждый день. Запрос

SELECT t.*

FROM SALES_TOTAL t

WHERE t.PRODUCT_ID = 8

AND t.SALE_DATE >= '2024-01-01'

ORDER BY t.SALE_DATE

возвращает данные по продажам некоторого товара с идентификатором 8 за каждый день, начиная с начала 2024 года:

PRODUCT_ID SALE_DATE AMOUNT

8 2024-01-01 5

8 2024-01-02 4

8 2024-01-03 7

8 2024-01-04 8

...

В столбце AMOUNT отображается количество штук проданного товара за каждый день.

Чтобы в результирующей таблице, помимо существующих столбцов, получить ещё один столбец с количеством проданного товара с начала года по день, указанный в таблице накопительным итогом, нужно в блок SELECT через запятую добавить:

SQL задача по оконным функциям Программирование, Собеседование, IT, SQL, Урок, Задача, Postgresql, Mysql, Oracle, Программист, Тестирование
Показать полностью 1

Задача с собеседования по SQL с заложенной в неё ошибкой

Задача с собеседования по SQL с заложенной в неё ошибкой Программирование, IT, Собеседование, SQL, Задача, Oracle, Postgresql, Postgres, Mysql, Ms SQL, База данных, Программист, Тестирование

Продолжаю тему разборов задач с собеседований по SQL. В этот раз выложу полное содержание, чтобы пост не удалили.

Итак, в базе данных есть таблица CLIENTS, содержащая три строки:

Задача с собеседования по SQL с заложенной в неё ошибкой Программирование, IT, Собеседование, SQL, Задача, Oracle, Postgresql, Postgres, Mysql, Ms SQL, База данных, Программист, Тестирование

И есть таблица INVOICES, в которой две строки:

Задача с собеседования по SQL с заложенной в неё ошибкой Программирование, IT, Собеседование, SQL, Задача, Oracle, Postgresql, Postgres, Mysql, Ms SQL, База данных, Программист, Тестирование

И сама задача звучит так: какое количество строк вернёт указанный ниже запрос:

SELECT * FROM CLIENTS WHERE EXISTS (SELECT COUNT(*) FROM INVOICES WHERE ID_CLIENT = CLIENTS.ID)

Задача с собеседования по SQL с заложенной в неё ошибкой Программирование, IT, Собеседование, SQL, Задача, Oracle, Postgresql, Postgres, Mysql, Ms SQL, База данных, Программист, Тестирование

Какой бы вариант Вы выбрали?

Здесь нужно было заметить неправильное использование EXISTS.

Оператор EXISTS используют для проверки того, возвращается ли что-то подзапросом, указанным в скобках. Как правило, в скобках для оператора EXISTS/NOT EXISTS пишут:

SELECT *

или:

SELECT 1

В задаче выше нарочно допущена ошибка (в EXISTS нарочно написано SELECT COUNT).

SELECT COUNT всегда будет возвращать данные. Написанный в скобочках подзапрос всегда будет возвращать количество, хоть и иногда 0. Но данные-то есть. Ноль - это тоже данные. Поэтому EXISTS будет давать TRUE для каждой из трех строчек основного запроса.

Ещё больше интересных задач с собеседований я публикую в моем Телеграм-канале по SQL!

Показать полностью 4

Задача-тест с собеседования по SQL

Задача-тест с собеседования по SQL Программирование, IT, Собеседование, Тестирование, Программист, SQL, База данных, Oracle, Ms SQL, Mysql, Postgresql, Задача

Здравствуй, уважаемый читатель!

Как насчёт очередной задачи с собеседования по SQL? Задача базового курса, поэтому поставил одну звезду уровня сложности из пяти.

Дана схема данных (рисунок выше). Необходимо создать представление (VIEW) с названием CLIENTS_INFO, содержащее следующую информацию о клиентах: INN, NAME, PHONE.

Какая ошибка допущена в следующей SQL команде?

CREATE VIEW CLIENTS_INFO
AS SELECT INN, NAME, PHONE
FROM CLIENTS, CLIENT_CONTACTS
WHERE CLIENTS.CLIENT_ID = CLIENT_CONTACTS.CLIENT_ID

Задача-тест с собеседования по SQL Программирование, IT, Собеседование, Тестирование, Программист, SQL, База данных, Oracle, Ms SQL, Mysql, Postgresql, Задача

Посмотреть правильный ответ и найти еще больше интересных задач можно в моем Телеграм-канале.

Показать полностью 2

Как посчитать стоимость рекламы на телевидении или радио и быстро построить медиа план

Как посчитать стоимость рекламы на телевидении или радио и быстро построить медиа план Маркетинг, Реклама, Креативная реклама, Боги маркетинга, Креатив, IT, Программа, Программное обеспечение, Приложение, Дизайнер, Длиннопост

Посчитать стоимость рекламы на телевидении или радио и автоматически построить медиаплан можно в программе Media Planner (скачать можно здесь). Для того, чтобы это сделать, нужно проделать следующие шаги:

1. Создать новую кампанию;

Как посчитать стоимость рекламы на телевидении или радио и быстро построить медиа план Маркетинг, Реклама, Креативная реклама, Боги маркетинга, Креатив, IT, Программа, Программное обеспечение, Приложение, Дизайнер, Длиннопост

2. Выбрать одну или несколько теле и радио станций и города их вещания;

Как посчитать стоимость рекламы на телевидении или радио и быстро построить медиа план Маркетинг, Реклама, Креативная реклама, Боги маркетинга, Креатив, IT, Программа, Программное обеспечение, Приложение, Дизайнер, Длиннопост

3. Указать продолжительность роликов (15, 30, 45,.. секунд). Можно указать одновременно несколько хронометражей;

4. Указать сколько процентов от общего время вещания необходимо показывать в прайме (то есть именно в такое время, когда теле- и радио станцию смотрят/слушают наибольшее количество зрителей/слушателей);

5. Указать месяца проведения кампании и количество минут показа рекламы в каждом месяце;

Как посчитать стоимость рекламы на телевидении или радио и быстро построить медиа план Маркетинг, Реклама, Креативная реклама, Боги маркетинга, Креатив, IT, Программа, Программное обеспечение, Приложение, Дизайнер, Длиннопост

Все готово! Во время указания количества минут показа рекламы в каждом месяце, программа сама автоматически выполнит расстановку выходов (подготовит медиаплан) и посчитает стоимость рекламы.

Как посчитать стоимость рекламы на телевидении или радио и быстро построить медиа план Маркетинг, Реклама, Креативная реклама, Боги маркетинга, Креатив, IT, Программа, Программное обеспечение, Приложение, Дизайнер, Длиннопост

При необходимости можно управлять и другими параметрами расчёта, такими как:

  • позиция показа в рекламном блоке: на первом месте, на втором месте, на последнем месте и т.д.;

  • делать ли расстановку (медиаплан): да, делать, и исходя из расстановки считать стоимость или не делать расстановку, а расчёт выполнить по методу средней цены (без указания точного времени выхода роликов);

  • способ расстановки выходов рекламы в медиа плане: автоматический (программа расставит сама, принимая в расчет равномерность выходов, процент показа рекламы в прайме, особенности работы каждого канала, проритет бюджета и прочее), вручную или используя шаблон;

  • приоритет авто авторасстановки выходов рекламы: максимально дешёвая расстановка или максимальный охват аудитории;

  • другие.

Буду рад, если понравился мини обзор программы! Также буду рад получить Ваши вопросы под моим постом!

Показать полностью 5

Задача по SQL с неочевидным решением

Задача по SQL с неочевидным решением IT, Программирование, Собеседование, Тестирование, Фриланс, SQL, Oracle, Программист, Ms SQL, Mysql, Postgresql, Postgres, База данных, Длиннопост

Здравствуй, уважаемый читатель! Спасибо, что заходишь ко мне на канал и изучаешь SQL со мной!

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

В базе данных есть таблица анализов Analysis, имеющая следующие столбцы: an_id — ID анализа; an_name — название анализа; an_price — цена анализа; an_group — группа анализов. Есть, также, таблица заказов Orders: ord_id — ID заказа; ord_datetime — дата и время заказа; ord_an — ID анализа. Необходимо вывести название и цену для всех анализов, которые продавались 5 февраля 2020 и всю следующую неделю.

Тут сделай паузу и попробуй сначала сам решить задачу.

Итак, надеюсь, ты делал паузу и составил SQL-запрос. Далее будем решать вместе.

Напомню, что нужно было вывести список анализов и их цену, которые продавались 05.02.2022 и всю следующую неделю.

Первым решением напрашивается соединение таблицы анализов и таблицы продаж с применением условия на период. Кстати, именно это и указано в качестве ответа на задачу.

На самом деле, из-за того, что один анализ за выбираемый интервал времени мог быть продан сколько угодно раз (один и тот же анализ мог быть продан хоть тысячу раз и больше) заместо соединения таблицы анализов с таблицей заказов, я бы предложил использование EXISTS:

select  a.an_name, a.an_cost from  analysis a where  exists (select 1 from orders  where ord_an = a.an_id  and ord_datetime between to_date('05.02.2022', 'dd.mm.yyyy') and to_date('05.02.2022', 'dd.mm.yyyy') + 7)

Благодаря тому, что мы не джоинили анализы с их заказами, в результирующей таблице анализы не замножатся по количеству присоединившихся к ним заказов. То есть в результате мы получим:

Задача по SQL с неочевидным решением IT, Программирование, Собеседование, Тестирование, Фриланс, SQL, Oracle, Программист, Ms SQL, Mysql, Postgresql, Postgres, База данных, Длиннопост

а не:

Задача по SQL с неочевидным решением IT, Программирование, Собеседование, Тестирование, Фриланс, SQL, Oracle, Программист, Ms SQL, Mysql, Postgresql, Postgres, База данных, Длиннопост

В примере, что я нашёл в интернете (ссылка ниже), помимо названий анализов и их стоимостей, выведен ещё и столбец с датами заказов. По условиям задачи вывод этого столбца не запрашивался. Не требовался вывод никакой информации о заказах/продажах. Поэтому и надобности в соединении я не усмотрел. Наоборот, это и потенциально замножит вывод анализов, которые покупали в запрашиваемый период, и прибавит лишнюю работу СУБД.

Ссылка на источник: https://tproger.ru/articles/5-zadanij-po-sql-s-realnyh-sobesedovanij

Поддержи статью лайком или подпиской!

Ещё больше интересных практических задач по SQL и задач с собеседований в нашем Телеграмм-канале и в интернете :)

Показать полностью 3

Задачи с собеседования по SQL1

Всем привет!

Продолжаем разбирать SQL задачи с собеседований с нашего Телеграм-канала!

В базе данных есть таблица TMP_TABLE, имеющая всего два столбца и содержащая следующие данные:

TMP_TABLE

column1 column2

-----------------------------------------

12 12

NULL 13

12 14

NULL NULL

13 15

Какое значение вернёт следующий запрос?

SELECT COUNT(*) FROM TMP_TABLE

Задачи с собеседования по SQL Программирование, Собеседование, IT, SQL, Задача, Аналитика, База данных, Ms SQL, Oracle, Postgresql, Postgres, Mysql, Тестирование, Telegram (ссылка)
Показать полностью 1

ЗАДАЧИ ПО SQL

Всем доброго понедельника!

Как насчёт очередной небольшой задачи по SQL с нашего Телеграм-канала?

В таблице INVOICES две строки. В первой строке в столбце QTY число 25, во второй строке в этом же столбце лежит NULL.

Какой будет результат запроса?

SELECT SUM(QTY) FROM INVOICES

ЗАДАЧИ ПО SQL Программирование, IT, Собеседование, SQL, Oracle, Postgresql, Mysql, Тестирование, Программист, Telegram (ссылка)

ЗАДАЧА-ТЕСТ ПО SQL

Всем привет!

Как насчет небольшой задачи по SQL с нашего Телеграм-канала? По сложности назначаю 1 звёздочку из пяти! Проверьте себя, ничего не забыли из основы основ? И внимательно читаем условие задачи, ато обидно будет ответить не правильно на достаточно простой задаче 😉

Таблица PERS определена следующим образом:

(ID NUMBER NOT NULL PRIMARY KEY,

NAME VARCHAR(100) NOT NULL)

Запрос

SELECT COUNT(*) FROM PERS WHERE NAME = 'Иванов Иван Иванович'

возвращает число 2.

Сколько строк вернёт следующий запрос?

SELECT DISTINCT ID, NAME FROM PERS WHERE NAME = 'Иванов Иван Иванович'

ЗАДАЧА-ТЕСТ ПО SQL IT, Собеседование, Программирование, SQL, Oracle, Mysql, База данных, Telegram (ссылка)
Показать полностью 1
Отличная работа, все прочитано!