Решение модуля 1.4 из курса «Интерактивный тренажер по SQL»

Разобрали ответы и решения урока 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;
Понравилась статья? Поделиться с друзьями:
Подписаться
Уведомить о
guest

1 Комментарий
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
777
777
5 месяцев назад

Параллельно с прохождением курса прогоняю все решения тренажёра через sqlite3. И там, как оказалось, нет функции any. Может, кто в курсе, как правильно пишется в sqlite3 решение
SELECT author, title, price
FROM book
WHERE price < any (
SELECT min(price)
FROM book
GROUP BY author
);

1
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x