Насколько я понимаю функцию MAX, она должна вернуть максимальное значение из данного столбца. В случае числовых значений, например столбца зарплаты, для меня это понятно - и это единственное приложение, которое я нахожу в учебниках. Однако у меня есть проблема, чтобы понять, как это работает в случае нечисловых столбцов.
Мои проблемы возникают из этого упражнения (на sql-ex.ru)
Узнайте производителей, которые производят только модели того же типа, и число этих моделей превышает 1. Таблица "Продукт" содержит информацию о производителе, номере модели и типе ( "ПК", "Ноутбук" или "Принтер" ). Одним из решений этого является:
SELECT maker,
MAX(type) AS type
FROM product
GROUP BY maker
HAVING COUNT(DISTINCT type) = 1
AND COUNT(model) > 1
Я не понимаю функцию max - что она подсчитывает? Я попробовал более простой запрос, чтобы понять это, но это только усложнило работу.
SELECT maker,
MAX(type) AS type, COUNT(type) AS QTY
FROM product
GROUP BY maker
ORDER BY maker
Возвращаемое значение было
maker type QTY
A Printer 7
B PC 2
C Laptop 1
D Printer 2
E Printer 4
Мне кажется, что MAX (тип) показывает случайное значение, например. почему для создателя B результатом является ПК, а не ноутбук? Почему для E это принтер, а не ПК?
Полный стол