据我了解 MAX 函数,它应返回给定列的最大值。如果是数值,例如薪水列,我很清楚 - 这是我在教程中找到的唯一应用程序。但是,我很难理解它在非数字列的情况下是如何工作的。
我的问题源于这个练习(在 sql-ex.ru 上)
找出仅生产同类型型号的厂商,并且这些型号的数量超过1。 “产品”表包括有关厂商、型号和类型('PC'、'Laptop'或'Printer')的信息')。解决方案之一是:
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(type) 在我看来是一个随机值,例如为什么制造商 B 的结果是 PC 而不是笔记本电脑?为什么E是打印机而不是PC?
全表