添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

MAX() 一般用于找出 最大的数值 日期值 ,但多数 DBMS 也支持查找任意列的最大值,如文本。当用于文本时, MAX() 返回改列排序后的最后一行

MAX() 忽略空值(NULL)

MIN()

--- example
SELECT MIN(prod_price) AS min_price
FROM Products;

MIN() 函数用法同理于 MAX(),当用于文本时,返回改列排序后的最前面的行

MIN() 忽略空值(NULL)

SUM()

计算单个列的数值之和

SELECT SUM(quantity) AS items_ordered
FROM OrderItems
WHERE order_num = 20005;

计算多个列的合计值

SELECT SUM(item_price*quantity) AS items_ordered
FROM OrderItems
WHERE order_num = 20005;

所有聚集函数,都能执行多个列上的计算,像上面的列子

SUM() 忽略空值(NULL)

DISTINCT

  • 对所有行执行计算,指定 ALL 参数或者不指定参数(ALL 参数是默认行为)
  • 只计算不同的值,指定 DISTINCT 参数
  • ⬆️ 即:可能有多个相同的数据,此时,使用了 DISTINCT 后,则相同的数据,计算时只会使用一次;否则,则全部都用语计算

    -- 这里,如果 prod_price 有多个相同的值的话,则只会使用一次,因此,这里平均值可能会提供,因为排出了多个最小值
    SELECT AVG(DISTINCT prod_price) AS avg_price
    FROM Products
    WHERE vend_id = 'DLL01';
    

    DISTINCT 不能用于 COUNT(*),可以用于 COUNT(column),这道理上冲突啊

    DISTINCT 可以用在 MIN()MAX() 上,只是,没什么意义

    使用多个聚集函数

    SELECT COUNT(*) AS num_items,
           MIN(prod_price) AS price_min,
           MAX(prod_price) AS price_max,
           AVG(prod_price) AS price_avg
    FROM Products;
    

    使用聚集函数时,推荐使用 别名

    聚集函数高效,一般比客户端中处理得要快