Разбор ошибок. SQL запрос кросс-джойн двух таблиц без явного указания оператора JOIN
Этот запрос выполняет кросс-джойн двух таблиц без явного указания оператора JOIN, что может привести к неожиданным результатам.
Кроме того, он не использует оператор WHERE для фильтрации строк, что означает, что он возвращает все строки, удовлетворяющие условию соединения. Это может привести к запросу к большому объему данных, из-за которых запрос будет выполняться медленно.
Наконец, условие фильтрации для идентификации клиента по имени не учитывает возможность наличия нескольких клиентов с одинаковыми именами в таблице customers
SELECT *
FROM orders, customers
WHERE orders.customer_id = customers.customer_id
AND customers.first_name = 'John'Этот запрос выполняет кросс-джойн двух таблиц без явного указания оператора JOIN, что может привести к неожиданным результатам.
Кроме того, он не использует оператор WHERE для фильтрации строк, что означает, что он возвращает все строки, удовлетворяющие условию соединения. Это может привести к запросу к большому объему данных, из-за которых запрос будет выполняться медленно.
Наконец, условие фильтрации для идентификации клиента по имени не учитывает возможность наличия нескольких клиентов с одинаковыми именами в таблице customers
👍5😱1
Руководство по подготовке к собеседованию по SQL
Задачи по SQL можно разделить на 4 уровня. В рамках гайда мы рассмотрим каждый из них вместе со стандартными примерами для практики. Если хотите лучше усвоить материал, не переходите сразу же к решению.
Смотреть статью
Задачи по SQL можно разделить на 4 уровня. В рамках гайда мы рассмотрим каждый из них вместе со стандартными примерами для практики. Если хотите лучше усвоить материал, не переходите сразу же к решению.
Смотреть статью
👍5
Делаем SQL-запросы чище
Периодически в коде запросов и "заточенных" под них индексов наблюдаю примерно подобные куски:
Понятно, что тут хотели обезопасить себя от заполненности любого из полей NULL-значением, чтобы случайно вся строка не заNULL'илась.
Правда, тут возникают некоторые артефакты в виде "висящих пробелов" типа
Но ведь есть решение изящнее и проще - функция concat_ws:
Периодически в коде запросов и "заточенных" под них индексов наблюдаю примерно подобные куски:
coalesce("Фамилия", '') || ' ' || coalesce("Имя", '') || ' ' || coalesce("Отчество", '')
Понятно, что тут хотели обезопасить себя от заполненности любого из полей NULL-значением, чтобы случайно вся строка не заNULL'илась.
Правда, тут возникают некоторые артефакты в виде "висящих пробелов" типа
' Иван Иванович' или 'Иванов Иван '.Но ведь есть решение изящнее и проще - функция concat_ws:
concat_ws(' ', "Фамилия", "Имя", "Отчество")👍6
Временные таблицы
Держите видео, в котором автор увлекательно рассказывает о временных таблицах.
Temporary Tables – это таблицы, которые хранятся в оперативной памяти сервера. Вы узнаете о создании локальных и глобальных временных таблиц.
📘Видео урок
Держите видео, в котором автор увлекательно рассказывает о временных таблицах.
Temporary Tables – это таблицы, которые хранятся в оперативной памяти сервера. Вы узнаете о создании локальных и глобальных временных таблиц.
📘Видео урок
👍4❤1
WITH employee_ranking AS (
SELECT
employee_id,
last_name,
first_name,
salary,
RANK() OVER (ORDER BY salary DESC) as ranking
FROM employee
)
SELECT
employee_id,
last_name,
first_name,
salary
FROM employee_ranking
WHERE ranking = 2
Условие WHERE ranking = 2 используется для фильтрации строк второй по величине зарплаты. Обратите внимание, что на позиции 2 может находиться более одного сотрудника, если у них одинаковая зарплата.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2
запросов на естественном языке в SQL-запросы с помощью искусственного интеллекта. Этот проект является 100% бесплатным и с открытым исходным кодом.git clone https://github.com/whoiskatrin/sql-translator.gitGithub
Проект
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7😱1
Виды JOIN в SQL
В SQL-джойнах скрыто больше, чем можно подумать. Давайте разберем их.
Будем использовать две простые таблицы: компании companies и их вакансии
Есть три вымышленные компании —
Смотреть статью
В SQL-джойнах скрыто больше, чем можно подумать. Давайте разберем их.
Будем использовать две простые таблицы: компании companies и их вакансии
jobs.Есть три вымышленные компании —
Hoogle, Emazon и Neta — которые предлагают на удивление мало вакансий:Hoogle интересуется аналитиками данных. Emazon нанимает Go-разработчиков и ML-инженеров. У Neta нет вакансий. А какая-то ноунейм-компания с идентификатором 99 отчаянно разыскивает UI-дизайнера.Смотреть статью
👍7
Оконные функции SQL простым языком с примерами
Сразу хочется отметить, что данная статья написана исключительно для людей, начинающих свой путь в изучении SQL и оконных функций. Здесь могут быть не разобраны сложные применения функций и могут не использоваться сложные формулировки определений - все написано максимально простым языком для базового понимания.
Для примеров будем использовать небольшую таблицу, которая показывает оценки учеников по разным предметам.
Смотреть статью
Сразу хочется отметить, что данная статья написана исключительно для людей, начинающих свой путь в изучении SQL и оконных функций. Здесь могут быть не разобраны сложные применения функций и могут не использоваться сложные формулировки определений - все написано максимально простым языком для базового понимания.
Для примеров будем использовать небольшую таблицу, которая показывает оценки учеников по разным предметам.
Смотреть статью
Хабр
Оконные функции SQL простым языком с примерами
Привет всем! Сразу хочется отметить, что данная статья написана исключительно для людей, начинающих свой путь в изучении SQL и оконных функций. Здесь могут быть не разобраны сложные применения функций...
👍3
Автоинкремент это:
Anonymous Quiz
9%
вызов функцией самой себя
3%
автоматический поиск значений
82%
автоматическое приращение значений ключа
5%
автономный подзапрос внутри запроса
👍6
Подстановочные знаки (wildcards) в SQL
Подстановочный знак (wildcard) в SQL используется с оператором LIKE для замены одного или набора символов в строке. Например:
SELECT *
FROM Customers
WHERE last_name LIKE 'R%';
Здесь % (означает ноль или более символов) является подстановочным знаком (wildcard). Мы выбираем клиентов, чья фамилия (last_name) начинается с буквы R, за которой следует ноль или более символов.
Смотреть статью
Подстановочный знак (wildcard) в SQL используется с оператором LIKE для замены одного или набора символов в строке. Например:
SELECT *
FROM Customers
WHERE last_name LIKE 'R%';
Здесь % (означает ноль или более символов) является подстановочным знаком (wildcard). Мы выбираем клиентов, чья фамилия (last_name) начинается с буквы R, за которой следует ноль или более символов.
Смотреть статью
👍7
HAVING COUNT
В данном видео автор демонстрирует решение задачи с помощью оператора HAVING. Идет он в сочетании с агрегатной функцией COUNT. Наглядно демонстрируется, как работает оператор GROUP BY HAVING COUNT.
📘Видео урок
В данном видео автор демонстрирует решение задачи с помощью оператора HAVING. Идет он в сочетании с агрегатной функцией COUNT. Наглядно демонстрируется, как работает оператор GROUP BY HAVING COUNT.
📘Видео урок
👍2