Какие из операторов SQL могут быть использованы для выполнения CRUD (Create, Read, Update, Delete) операций над данными?
Решение будет вечером.
#вопросы #собеседование
Решение будет вечером.
#вопросы #собеседование
👍2❤1
Задача на мышление и логику.
У строителя есть 8 кирпичей, 7 из которых имеют одинаковый вес, а один — тяжелее. Как строителю выявить бракованный кирпич с помощью весов всего за два взвешивания?
Решение будет завтра.
У строителя есть 8 кирпичей, 7 из которых имеют одинаковый вес, а один — тяжелее. Как строителю выявить бракованный кирпич с помощью весов всего за два взвешивания?
Решение будет завтра.
👍2
Решение вчерашней задачи на логику и мышление.
Все нужно делать поэтапно:
1. Разделить 8 кирпичей на три стопки по 3, 3 и 2 штуки.
2. Взвесить 2 стопки, в которых по 3 кирпича.
3. Если они уравновесились, значит взвесить стопку из двух кирпичей и найти бракованный.
4. Если не уравновесились, то взять 3 кирпича из стопки, которая перевесила и разделить на 3 штуки.
5. Положить по одному на весы. Если один перевесил — он бракованный, если уравновесились, значит, тяжелее всех тот, что остался в стороне.
#логика
Все нужно делать поэтапно:
1. Разделить 8 кирпичей на три стопки по 3, 3 и 2 штуки.
2. Взвесить 2 стопки, в которых по 3 кирпича.
3. Если они уравновесились, значит взвесить стопку из двух кирпичей и найти бракованный.
4. Если не уравновесились, то взять 3 кирпича из стопки, которая перевесила и разделить на 3 штуки.
5. Положить по одному на весы. Если один перевесил — он бракованный, если уравновесились, значит, тяжелее всех тот, что остался в стороне.
#логика
👍16
Трюк дня. SQL - Сортировка зеркальных строк
Есть БД со следующей структурой:
#tips
Есть БД со следующей структурой:
id team1 team2Нужно написать запрос что-бы узнать сколько раз команды играли между собой в виде:
1 spartak csk
2 csk spartak
3 real spartak
4 csk real
game numРешение будет завтра.
spartak-csk 2
real-spartak 1
csk-real 1
#tips
👍1👏1
0 - это число.
NULL - это не число, а также NULL не является значением пустой строки. NULL используется для указания того, что данные отсутствуют, неизвестны, неприменимы. NULL не равен ничему, даже другому NULL.
#вопросы #собеседование
NULL - это не число, а также NULL не является значением пустой строки. NULL используется для указания того, что данные отсутствуют, неизвестны, неприменимы. NULL не равен ничему, даже другому NULL.
#вопросы #собеседование
👍5🏆3
Ответ на "В чём разница между
Оба
Они отличаются тем, как они обрабатывают дубликаты:
UNION и UNION ALL?".Оба
UNION и UNION ALL объединяют результат двух разных SQL запросов. Они отличаются тем, как они обрабатывают дубликаты:
UNION выполняет DISTINCT в результирующем наборе, исключая любые повторяющиеся строки.UNION ALL не удаляет дубликаты, и поэтому он быстрее, чем UNION.🔥6
Есть библиотека с книгами. Оперируя сущностями «Книга» и «Автор», Вы хотите сохранить реестр своей библиотеки в БД. Сколько таблиц понадобится для эффективного хранения такой структуры в 3-й нормальной форме?
Anonymous Quiz
5%
1
27%
2
55%
3
3%
4
10%
Узнать ответ
Трюк дня. Получить id покупки с максимальной value для каждого customer.
Например, есть таблица:
id customer value
1 Alex 5
2 Sam 1
3 Sam 3
В результате нужно получить следующее:
id customer value
1 Alex 5
3 Sam 3
В PostgreSQL можно использовать оператор DISTINCT ON:
customer,
value
#tips
А какие варианты решения вы знаете?
Например, есть таблица:
id customer value
1 Alex 5
2 Sam 1
3 Sam 3
В результате нужно получить следующее:
id customer value
1 Alex 5
3 Sam 3
В PostgreSQL можно использовать оператор DISTINCT ON:
SELECT
DISTINCT ON(customer)
id,customer,
value
FROM table
ORDER BY customer, value DESC, id
#tips
А какие варианты решения вы знаете?
👍3🔥2
Как выбрать все записи из таблицы "Persons", для которых значение колонки "FirstName" начинается с "a"?
Anonymous Quiz
2%
SELECT * FROM Persons WHERE FirstName - 'a'
8%
SELECT * FROM Persons WHERE FirstName Like '%a'
4%
SELECT * FROM Persons WHERE FirstName STARTSWITH 'a'
82%
SELECT * FROM Persons WHERE FirstName LIKE 'a%'
2%
SELECT * FROM Persons WHERE FirstName = '%a%'
2%
Посмотреть ответы
👍4
Трюк дня. Найти записи с граничными значениями без соединения таблицы на саму себя
Один из вариантов - это сначала найти максимальное значение для каждого ID с помощью GROUP BY, и затем соединить таблицу с самой собой по ID и max значению.
Но есть способ лучше:
#tips
Один из вариантов - это сначала найти максимальное значение для каждого ID с помощью GROUP BY, и затем соединить таблицу с самой собой по ID и max значению.
Но есть способ лучше:
SELECT
dat2.*
FROM
(
SELECT
dat.*,
CASE WHEN (num = MAX(num) OVER (PARTITION BY id)) THEN 'y' ELSE 'n' END AS max_num
FROM current_table dat
) dat2
WHERE max_num = 'y'
#tips
👍9💩4
Media is too big
VIEW IN TELEGRAM
Полезные функции и операторы SQL
В этом видео автор рассматривает функции и операторы SQL, которые наиболее полезны в виду их разнообразного применения.
00:00 Вступление
00:24 Работа с полями таблиц в SQL
00:57 Создать таблицу для работы
01:09 Добавить поле в таблицу
01:34 Узнать тип поля
01:48 Переместить поле
02:22 Изменить тип поля
03:19 Переименовать поле
03:37 Удалить поле
03:58 Форматирование записей
05:55 Временные таблицы в SQL
Смотреть это видео на youtube: youtu.be/SglQ7CCkkTw
В этом видео автор рассматривает функции и операторы SQL, которые наиболее полезны в виду их разнообразного применения.
00:00 Вступление
00:24 Работа с полями таблиц в SQL
00:57 Создать таблицу для работы
01:09 Добавить поле в таблицу
01:34 Узнать тип поля
01:48 Переместить поле
02:22 Изменить тип поля
03:19 Переименовать поле
03:37 Удалить поле
03:58 Форматирование записей
05:55 Временные таблицы в SQL
Смотреть это видео на youtube: youtu.be/SglQ7CCkkTw
👍5
Трюк дня. Удаление лишних пробелов в строке с использованием REGEX.
Предположим, есть строка, содержащая такой текст:
Требуется удалить из строки лишние пробелы.
Решение:
Используйте функцию REGEXP_REPLACE:
#tips
Предположим, есть строка, содержащая такой текст:
This is a test string
Требуется удалить из строки лишние пробелы.
Решение:
Используйте функцию REGEXP_REPLACE:
SELECT
REGEXP_REPLACE('This is a test string','( ){2,}',' ');#tips
👍12
Вопрос с собеседования
Напишите запрос для получения количества полных месяцев (результат должен быть INTEGER) между двумя TIMESTAMPS: date1 и date2.
#вопросы #собеседование
Напишите запрос для получения количества полных месяцев (результат должен быть INTEGER) между двумя TIMESTAMPS: date1 и date2.
#вопросы #собеседование
Ответ на вопрос с собеседования
TIMESTAMPDIFF возвращает разницу date2 - date1 в полных месяцах. Поэтому, например,
а
Функция
#вопросы #собеседование
ABS (TIMESTAMPDIFF (MONTH, date1, date2));
TIMESTAMPDIFF возвращает разницу date2 - date1 в полных месяцах. Поэтому, например,
(MONTH, '2022-01-05 00:00:00',
'2022-05-07 00:00:00') = 4, а
(MONTH, '2022-01-05 00:00:00',
'2022-05-04 00:00:00') = 3.Функция
ABS возвращает модуль числа, то есть преобразует число из отрицательного в положительное. Охватывает те случаи, когда date1 > date2.#вопросы #собеседование
⚡3👍3
Трюк дня. Найти второе место по зарплате
Напишите SQL-запрос для получения из таблицы (
Например, для таблицы на картинке выше такой запрос должен вернуть
Решение будет вечером.
#tips
Напишите SQL-запрос для получения из таблицы (
employee) с зарплатами записи, содержащие вторую по размеру заработную плату.Например, для таблицы на картинке выше такой запрос должен вернуть
200. Если в таблице нет значения, меньшего, чем самая высокая зарплата — запрос должен вернуть null.Решение будет вечером.
#tips
Трюк дня. Найти второе место по зарплате. Решение.
Решение 1: использование
Здесь выбирается самое большое значение зарплаты, не равное максимальной зарплате, полученной по всей таблице. В результате мы и получаем то, что нужно — вторую по величине зарплату.
#tips
Решение 1: использование
IFNULL и OFFSET • IFNULL(expression, alt): эта функция возвращает аргумент expression в случае, если он не равен null. В противном случае возвращается аргумент alt. Мы используем эту функцию чтобы возвратить null, если в таблице не окажется искомого значения. • OFFSET: этот оператор используется с ORDER BY для того чтобы отбросить первые n строк. Используется для получения второго по величине значения. SELECT
IFNULL(
(SELECT DISTINCT salary
FROM employee
ORDER BY salary DESC
LIMIT 1
OFFSET 1
), null) AS sec_salary
FROM employee
LIMIT 1
Решение 2: использование MAXЗдесь выбирается самое большое значение зарплаты, не равное максимальной зарплате, полученной по всей таблице. В результате мы и получаем то, что нужно — вторую по величине зарплату.
SELECT
MAX(salary) AS sec_salary
FROM Employee
WHERE salary != (SELECT MAX(salary) FROM employee)#tips
❤5👍4🤔3
Трюк дня. Сравнение с предыдущим
Напишите SQL-запрос, который находит в таблице
Решение будет завтра.
#tips
Напишите SQL-запрос, который находит в таблице
weather все даты (идентификаторы дат), когда температура была бы выше температуры на предшествующие им даты. То есть, нас интересуют даты, в которые «сегодняшняя» температура выше «вчерашней».Решение будет завтра.
#tips
👍1
Трюк дня. Сравнение с предыдущим. Решение.
Решение: использование
Если сформулировать обычным языком следующий запрос, то окажется, что он выражает следующую идею: нужно выбрать такие идентификаторы, чтобы температура, соответствующая представляемым ими датам, была бы больше, чем температура на «вчерашние» по отношению к ним даты.
Решение: использование
DATEDIFF
DATEDIFF: эта функция вычисляет разницу между двумя датами. Она используется для того, чтобы обеспечить сравнение именно «сегодняшних» и «вчерашних» температур.Если сформулировать обычным языком следующий запрос, то окажется, что он выражает следующую идею: нужно выбрать такие идентификаторы, чтобы температура, соответствующая представляемым ими датам, была бы больше, чем температура на «вчерашние» по отношению к ним даты.
SELECT DISTINCT a.Id#tips
FROM Weather a, Weather b
WHERE a.Temperature > b.Temperature
AND DATEDIFF(a.Recorddate, b.Recorddate) = 1
👍8😱2👎1