澳门新蒲京娱乐


解决Wine和IEs4Linux的乱码问题

摘自sql官方文档,语法与实例

SQL必知必会

sql group by用法

1 使用集中函数汇总量据(AVG、COUNT、MAX、MIN、SUM)

我们平常索要汇聚数据而不用把它们都检索出来。比如:

  • 分明表中央银行数(也许满意某些条件或含有有个别特定值的行数)。
  • 赢得表中有个别行的和。
  • 寻觅表列(或富有行照旧有个别特定行)的最大值、最小值、平均值。

集中函数(aggregate function):对某个行运维的函数,总结并赶回贰个值。

SQL给了5个聚众函数。

函数 说明
AVG() 返回某列的平均值
COUNT() 返回某列的行数
MAX() 返回某列的最大值
MIN() 返回某列的最小值
SUM() 返回某列值的总和

group
by,计数,最小值,最大值或用来生产总括。他们的输出值是均等的汇总,在每列在一份报告中列出最后出现。您也足以利用那几个函数来输出分的总价值。由专门肩负子句公司区别让您在整整列中的值。它结合成多少个笔录全数记录都在某一世界或字段的整合同样的值。
group by子句能够组三个或七个列的结果。

1.1 AVG()函数

AVG()函数通过对表中央银行数计数并总计其列值之和,求得该列的平均值。AVG()可用来回到所有列的平均值,也得以回来特定列或行的平均值。

算算Products表中装有产品的平均价格:

SELECT AVG(prod_price) AS avg_price 
FROM Products;

计算特定供应商DLL01所提供产品的平均价格:

SELECT AVG(prod_price) AS avg_price
FROM Products
WHERE vend_id = 'DLL01';

图片 1

图片 2

瞩目:AVG()只好用来规定特定数值列的平均值,而且列名必须作为函数参数给出。为了拿走七个列的平均值,必须使用多少个AVG()函数,如AVG(num1)、AVG(num2)、AVG(num3)等。

AVG()函数在测算时,会忽视列值为NULL的行。


SELECT column_name_1,…,column_name_n, aggregate_function
(expression)
FROM table_name
[WHERE condition]
GROUP BY column_name1,…,column_name_n

1.2 COUNT()函数

COUNT()函数进行计数,可显明表中央银行的数额或符合特定条件的行的多少。

COUNT()函数有二种选拔办法:

  1. 使用COUNT(*)对表中央银行的数量实行计数,不管表列中涵盖的是空值NULL依旧非空值。
  2. 运用COUNT(column)对一定列中具备值的行实行计数,忽略NULL值。

测算Customers表中消费者的总额:

SELECT COUNT(*) AS num_cust 
FROM Customers;

只计算有Email的消费者:

SELECT COUNT(cust_email) AS num_cust 
FROM Customers;

图片 3

图片 4


where子句是可选的。假如当第一字在SQL语句的红包,聊起在GROUP BY子句。

1.3 MAX()函数

MAX()函数再次来到钦定列中的最大值,供给必须钦命列名。

计算Products表中最贵物品的价钱:

SELECT MAX(prod_price) AS max_price 
FROM Products;

图片 5

固然如此MAX()一般用来寻觅最大的数值或日期值,但广大DBMS允许将它用来回到任意列中的最大值,包括再次回到文本列中的最大值。用于文书数据时,MAX()再次回到按该列排序后的终极一行。

MAX()函数会忽略列值为NULL的行。


范例#1

1.4 MIN()函数

MIN()函数再次来到钦赐列中的最小值,供给必须内定列名。

算算Products表中最便利货品的价格:

SELECT MIN(prod_price) AS min_price 
FROM Products;

图片 6

就算如此MIN()一般用来找寻最小的数值或日期值,但过多DBMS允许将它用来回到任性列中的最小值,包含再次回到文本列中的最小值。用于文书数据时,MIN()再次来到按该列排序后最前头的行。

MIN()函数会忽略列值为NULL的行。


Select Item, Sum(Price) as TotalSum
From Antiques
Group by Item

1.5 SUM()函数

SUM()函数用来回到钦点列值的和(总括)。

测算订单号为20005的所购物品的总和:

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

算算订单号为30005的所购货品,开销的总金额:

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

图片 7

图片 8

SUM()函数会忽略列值为NULL的行。


此询问再次来到区别的类别和所谓’字段列表TotalSum’算数的古董结果总和供应各种项目。

1.6 集中差别的值

  • 对具有行施行总结,钦定ALL参数也许不点名参数(ALL是暗许行为)。
  • 只含有分化的值,钦赐DISTINCT参数。

测算特定供应商DLL01提供的制品的两样价格的平均值,也正是破除同一价位的成品。

SELECT AVG(DISTINCT prod_price) AS avg_price
FROM Products 
WHERE vend_id = 'DLL01';

图片 9

在动用了DISTINCT之后,开采avg_price相比高,是因为有多少个产品有所同样的较实惠格,排除它们,进步了平均价格。

留神:要是钦点列名,则DISTINCT只好用来COUNT()。DISTINCT无法用于COUNT(*)。DISTINCT必须运用列名,不可能用于计算或表明式。

稍许DBMS补助对查询结果子集进行测算的TOP和TOP PERCENT。


相关文章

No Comments, Be The First!
近期评论
    功能
    网站地图xml地图