Шаг 12 - Использование операторов ANY и ALL в SQLite (аналоги)

Пример 1: Найти офисы в городах, где есть клиенты (аналог ANY/IN)

SELECT officeCode, city, country
FROM offices
WHERE city IN (
    SELECT DISTINCT city
    FROM customers
    WHERE city IS NOT NULL
);

Результат:

officeCode

city

country

4

Paris

France

7

London

UK

Пример 2: Найти сотрудников, у которых есть клиенты с кредитным лимитом выше среднего (аналог ANY)

SELECT DISTINCT e.employeeNumber, e.lastName, e.firstName
FROM employees e
JOIN customers c ON e.employeeNumber = c.salesRepEmployeeNumber
WHERE c.creditLimit > (
    SELECT AVG(creditLimit)
    FROM customers
);

Результат:

employeeNumber

lastName

firstName

1002

Murphy

Diane

1056

Patterson

Mary

Пример 3: Найти продукты, которые дороже ВСЕХ продуктов в категории „Motorcycles“ (аналог ALL)

SELECT productCode, productName, buyPrice
FROM products
WHERE buyPrice > (
    SELECT MAX(buyPrice)
    FROM products
    WHERE productLine = 'Motorcycles'
);

Результат:

Пример 4: Найти клиентов, чей кредитный лимит меньше ВСЕХ клиентов в США (аналог ALL)

SELECT customerNumber, customerName, creditLimit
FROM customers
WHERE creditLimit < (
    SELECT MIN(creditLimit)
    FROM customers
    WHERE country = 'USA'
) AND creditLimit > 0;

Результат:

customerNumber

customerName

creditLimit

124

Mini Gifts Distributors

21000

129

Toys4GrownUps.com

34400