Разобрали ответы и решения урока 1.4(Вложенные запросы) под курс «Интерактивный тренажер по SQL».
Предыдущий разбор модуля 1.3 следующий разбор модуль 1.5
Вывести информацию (автора, название и цену) о книгах, цены которых меньше или равны средней цене книг на складе. Информацию вывести в отсортированном по убыванию цены виде. Среднее вычислить как среднее по цене книги.
SELECT author, title, price
FROM book
WHERE price <= (
SELECT AVG(price)
FROM book
)
ORDER BY price DESC;
Вывести информацию (автора, название и цену) о тех книгах, цены которых превышают минимальную цену книги на складе не более чем на 150 рублей в отсортированном по возрастанию цены виде.
SELECT author, title, price
FROM book
WHERE
price - (SELECT MIN(price)
FROM book) <= 150
ORDER BY price;
Вывести информацию (автора, книгу и количество) о тех книгах, количество экземпляров которых в таблице
book
не дублируется.
SELECT author, title, amount
FROM book
WHERE amount IN (
SELECT amount
FROM book
GROUP BY amount
HAVING COUNT(amount) = 1
);
Вывести информацию о книгах(автор, название, цена), цена которых меньше самой большой из минимальных цен, вычисленных для каждого автора.
SELECT author, title, price
FROM book
WHERE price < any (
SELECT min(price)
FROM book
GROUP BY author
);
Посчитать сколько и каких экземпляров книг нужно заказать поставщикам, чтобы на складе стало одинаковое количество экземпляров каждой книги, равное значению самого большего количества экземпляров одной книги на складе. Вывести название книги, ее автора, текущее количество экземпляров на складе и количество заказываемых экземпляров книг. Последнему столбцу присвоить имя Заказ.
SELECT title, author, amount,
(SELECT ABS(amount - (SELECT MAX(amount) FROM book ))) AS 'Заказ'
FROM book
WHERE amount < (SELECT MAX(amount) FROM book);
Придумайте один или несколько запросов к нашей таблице
book
, используя вложенные запросы. Проверьте, правильно ли они работают.
SELECT author, title, amount
FROM book
WHERE amount = (SELECT MIN(amount) FROM book)
ORDER BY amount;
Параллельно с прохождением курса прогоняю все решения тренажёра через sqlite3. И там, как оказалось, нет функции any. Может, кто в курсе, как правильно пишется в sqlite3 решение
SELECT author, title, price
FROM book
WHERE price < any (
SELECT min(price)
FROM book
GROUP BY author
);