Задача повышенной сложности
В базе данных есть таблица "orders" с полями "id" (уникальный идентификатор заказа), "customer_id" (уникальный идентификатор клиента, который сделал заказ), "total_price" (общая стоимость заказа) и "created_at" (дата создания заказа). Необходимо найти все заказы, сделанные клиентом, сумма которых превышает среднюю сумму заказов всех клиентов. Результат должен быть отсортирован по дате создания заказа в порядке убывания.
Решение:
SELECT orders.id , orders.total_price, orders.created_at
FROM orders
WHERE orders.customer_id IN (
SELECT customer_id
FROM orders
GROUP BY customer_id
HAVING AVG(total_price) < (
SELECT AVG(total_price)
FROM orders
)
)
ORDER BY orders.created_at DESC;
В базе данных есть таблица "orders" с полями "id" (уникальный идентификатор заказа), "customer_id" (уникальный идентификатор клиента, который сделал заказ), "total_price" (общая стоимость заказа) и "created_at" (дата создания заказа). Необходимо найти все заказы, сделанные клиентом, сумма которых превышает среднюю сумму заказов всех клиентов. Результат должен быть отсортирован по дате создания заказа в порядке убывания.
Решение:
FROM orders
WHERE orders.customer_id IN (
SELECT customer_id
FROM orders
GROUP BY customer_id
HAVING AVG(total_price) < (
SELECT AVG(total_price)
FROM orders
)
)
ORDER BY orders.created_at DESC;
👍13
#Вопросы_с_собеседования
❓При выборке из таблицы workers создайте новое поле res, в котором будет строка 'eee'.
Ответ на картинке.
❓При выборке из таблицы workers создайте новое поле res, в котором будет строка 'eee'.
Ответ на картинке.
😁7👍4🎄1
#Вопросы_с_собеседования
❓Вывести 30 комментариев начиная с 5 комментария из таблицы replies, кроме комментариев автора 'Вася'. Данные сортируются по дате добавления комментария в убывающем порядке
Ответ на картинке.
❓Вывести 30 комментариев начиная с 5 комментария из таблицы replies, кроме комментариев автора 'Вася'. Данные сортируются по дате добавления комментария в убывающем порядке
Ответ на картинке.
👍8
В чем разница между функциями RANK() и DENSE_RANK()?
Единственная разница между функциями RANK() и DENSE_RANK() заключается в случаях, когда несколько значений в наборе имеют одинаковый ранг.
В таких случаях RANK() будет назначать непоследовательные «ранги» значениям в наборе.
Тогда как DENSE_RANK() будет назначать последовательные ранги значениям в наборе.
Например, рассмотрим набор
{25, 25, 50, 75, 75, 100}.
Для такого набора RANK() вернет
{1, 1, 3, 4, 4, 6} (обратите внимание, что значения 2 и 5 пропущены), тогда как DENSE_RANK() вернет
{1, 1, 2, 3, 3, 4}.
Единственная разница между функциями RANK() и DENSE_RANK() заключается в случаях, когда несколько значений в наборе имеют одинаковый ранг.
В таких случаях RANK() будет назначать непоследовательные «ранги» значениям в наборе.
Тогда как DENSE_RANK() будет назначать последовательные ранги значениям в наборе.
Например, рассмотрим набор
{25, 25, 50, 75, 75, 100}.
Для такого набора RANK() вернет
{1, 1, 3, 4, 4, 6} (обратите внимание, что значения 2 и 5 пропущены), тогда как DENSE_RANK() вернет
{1, 1, 2, 3, 3, 4}.
👍7
Задача
Даны 3 таблицы: таблица category с полями id и name, таблица sub_category с полями id и name и таблица page с полями id, name и sub_category_id. Достаньте одним запросом все страницы вместе с их подкатегориями и категориями.
Даны 3 таблицы: таблица category с полями id и name, таблица sub_category с полями id и name и таблица page с полями id, name и sub_category_id. Достаньте одним запросом все страницы вместе с их подкатегориями и категориями.
SELECT * FROM page LEFT JOIN category ON page.catogory_id = category.id
LEFT JOIN sub_category ON category.id = sub_category.category_id👍5
fselect — поиск файлов при помощи SQL-like запросов
—
Хотя fselect не стремится полностью заменить традиционные find и ls, у fselect есть несколько приятных особенностей:
— SQL-подобная грамматика, легко понятная человеку
— возможность составлять сложные запросы
агрегатные, статистические, даточные и другие функции
поиск в архивах
— поддержка
— поиск по ширине и высоте изображений, метаданным EXIF
— поиск по информации о MP3
— поиск по расширенным атрибутам файлов
— поиск по хэшам файлов
— поиск по типу MIME
— имеет интерактивный режим
— различные форматы вывода (CSV, JSON и другие)
Любители SQL оценят)
🖥 GitHub
🟡 Примеры запросов
—
brew install fselectХотя fselect не стремится полностью заменить традиционные find и ls, у fselect есть несколько приятных особенностей:
— SQL-подобная грамматика, легко понятная человеку
— возможность составлять сложные запросы
агрегатные, статистические, даточные и другие функции
поиск в архивах
— поддержка
.gitignore, .hgignore и .dockerignore — поиск по ширине и высоте изображений, метаданным EXIF
— поиск по информации о MP3
— поиск по расширенным атрибутам файлов
— поиск по хэшам файлов
— поиск по типу MIME
— имеет интерактивный режим
— различные форматы вывода (CSV, JSON и другие)
Любители SQL оценят)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Аналитика небольших данных: как совместить Excel, Python и SQL с помощью инструментов с открытым исходным кодом
Смотреть статью
Смотреть статью
👍8
Разница между функциями CHARINDEX и SUBSTR
1. Функция CHARINDEX используется для поиска подстроки в строке и возвращает позицию первого вхождения этой подстроки. Синтаксис функции выглядит следующим образом:
CHARINDEX('подстрока', 'строка') - где 'подстрока' - искомая подстрока, а 'строка' - строка, в которой происходит поиск.
2. Функция SUBSTR используется для извлечения подстроки из строки. Синтаксис функции выглядит следующим образом:
SUBSTR('строка', начальная_позиция, длина) - где 'строка' - строка, из которой извлекается подстрока, начальная_позиция - позиция, с которой начинается извлечение подстроки (отсчет начинается с 1), а длина - количество символов, которые нужно извлечь.
1. Функция CHARINDEX используется для поиска подстроки в строке и возвращает позицию первого вхождения этой подстроки. Синтаксис функции выглядит следующим образом:
CHARINDEX('подстрока', 'строка') - где 'подстрока' - искомая подстрока, а 'строка' - строка, в которой происходит поиск.
2. Функция SUBSTR используется для извлечения подстроки из строки. Синтаксис функции выглядит следующим образом:
SUBSTR('строка', начальная_позиция, длина) - где 'строка' - строка, из которой извлекается подстрока, начальная_позиция - позиция, с которой начинается извлечение подстроки (отсчет начинается с 1), а длина - количество символов, которые нужно извлечь.
👍9
JSON_VALUE в Microsoft SQL Server
JSON_VALUE - это функция в Microsoft SQL Server, которая извлекает значение из JSON-объекта по заданному пути.
Синтаксис функции JSON_VALUE выглядит следующим образом: JSON_VALUE (expression, path)
-expression - это JSON-объект, из которого нужно извлечь значение.
- path - это путь к значению внутри JSON-объекта.
Функция JSON_VALUE также может использоваться в фильтрах WHERE.
JSON_VALUE - это функция в Microsoft SQL Server, которая извлекает значение из JSON-объекта по заданному пути.
Синтаксис функции JSON_VALUE выглядит следующим образом: JSON_VALUE (expression, path)
-expression - это JSON-объект, из которого нужно извлечь значение.
- path - это путь к значению внутри JSON-объекта.
Функция JSON_VALUE также может использоваться в фильтрах WHERE.
👍9
Ранжирующая функция NTILE()
Функция NTILE() является частью языка SQL и используется для разделения результата запроса на определенное количество групп или сегментов. Эта функция принимает один аргумент - количество сегментов на которые нужно разделить результат.
Функция NTILE() является частью языка SQL и используется для разделения результата запроса на определенное количество групп или сегментов. Эта функция принимает один аргумент - количество сегментов на которые нужно разделить результат.
👍18
Отличия MySQL от PostgreSQL. Выбираем что лучше, PostgreSQL или MySQL
В данной статье мы сравним PostgreSQL и MySQL по различным параметрам и запишем их в сравнительную таблицу.
Перейти к статье
В данной статье мы сравним PostgreSQL и MySQL по различным параметрам и запишем их в сравнительную таблицу.
Перейти к статье
👍4
Запрос: SELECT prod_name FROM products WHERE prod_price...
Как правильно закончить запрос, чтобы проверить столбцы на наличие пустых значений NULL?
Как правильно закончить запрос, чтобы проверить столбцы на наличие пустых значений NULL?
Anonymous Quiz
7%
= NULL
5%
= "NULL"
84%
is NULL
2%
LIKE '%'
3%
Узнать ответ
👍7❤🔥1
Отличаются ли в SQL операторы AND и & (амперсанд)?
Anonymous Quiz
15%
Между ними нет различий
48%
Оператор & не поддерживается стандартом SQL
8%
Приоритет AND ниже, чем приоритет &
11%
Приоритет AND выше, чем приоритет &
18%
Узнать ответ
👍15
Выберите верное утверждение:
Anonymous Quiz
12%
SQL чувствителен к регистру при написании запросов
34%
SQL чувствителен к регистру в названиях таблиц при написании запросов
53%
SQL нечувствителен к регистру
👍9
Является ли команда WHERE обязательной при использовании UPDATE?
Anonymous Quiz
18%
Да
62%
Нет
14%
Она является командой по умолчанию, и в качестве значения установлен NULL
6%
Посмотреть ответ
Какой из запросов отобразит всех студентов, имя которых начинается с буквы «А»?
Anonymous Quiz
9%
select first_name from students where first_name like ‘%A’;
4%
select first_name from students where first_name like ‘%A%’;
3%
select first_name from students where first_name like ‘A’;
84%
select first_name from students where first_name like ‘A%’;
1%
Посмотреть ответ
Какой верный ответ на задачку выше?
Anonymous Quiz
22%
SELECT COUNT(product_id) FROM product;
21%
SELECT COUNT(DISTINCT product_id), COUNT(product_id) FROM product;
27%
SELECT COUNT(DISTINCT product_id) FROM product;
30%
SELECT SUM(product_id), COUNT(product_id) FROM product WHERE product_id IS NOT NULL;
👍4😁4🔥3