神魔令普贤:SQL的问题

来源:百度文库 编辑:高考问答 时间:2024/05/11 05:33:35
在SQL中不用排序语言,可不可以 显示数组中满足某一条件的最大值

select max(字段) from 表 where 条件

Sql server中好象有一个max函数。

SQL本来就有一个MAX函数,与什么后台无关
另外还有一个SHAPE模型,也提供MAX函数,不过麻烦一点.

>>>>>>汇总和分组<<<<<<<<

除了创建显示单独数据行的查询之外,还可以创建合计查询,合计查询是从多个行中将信息汇总。例如,可以创建一个查询,计算 price 列内容的平均数。您可以对表中的所有行创建平均值,也可以对相关行的组创建平均值,例如,适用于一个特定用户的所有行。

该主题是关于使用查询汇总和分组信息。

汇总查询

汇总数据

分组行
汇总查询
使用汇总查询,可以:

在数值列中创建数据的总计或平均值。例如,在 orders 表中,可以找到 order_total 列的总计,以找出一天的总销售额。

计算符合指定准则的行数。例如,在 customers 表中,可找出在 California 州有多少顾客。

在指定列找出最大或最小值。例如,在 invoices 表中,可找出本月的最高销售额。
可将表作为一个整体创建汇总查询,或通过将表细分成组,在表的子集中进行汇总。

汇总数据
要汇总表中所有的数据,需创建一个包含如 SUM( ) 或 AVG( ) 函数的合计查询。当运行该查询时,结果集包含唯一一个汇总信息行。例如,通过创建一个查询,合计 price 列的内容来计算 titles 表中所有书的总价。查询输出结果如下所示:

相应的 SQL 语句如下所示:

SELECT SUM(price) total_price
FROM titles

可使用下列合计函数:

合计函数 描述
AVG(expr) 一列中值的平均值。列中只能包含数值型数据。
COUNT(expr), COUNT(*) 一列中的值数(如果将一个列名指定为 expr)或表中的行数或组中的行值(如果指定 *)。COUNT(expr) 忽略空值,但 COUNT(*) 在计数中包含它们。
MAX(expr) 列中的最高值(文本数据类型按字母顺序排在最后的)。忽略空值。
MIN(expr) 列中的最低值(文本数据类型按字母顺序排在最前的)。忽略空值。
SUM(expr) 列中值的合计。列中只能包含数值型数据。

注意 Oracle 支持另外的合计函数。有关详细信息,请参阅针对 Oracle 数据库的查询设计器考虑.

当使用合计函数时,缺省情况下,汇总信息包含所有的指定行。在某些情况下,一个结果集包含不唯一的行。可使用合计函数的 DISTINCT 选项筛选出多个行。

可将合计函数同其他表达式组合使用,计算其他汇总值。有关的详细资料,请参阅使用自定义表达式汇总值.

分组行
要对行组创建汇总值,需创建一个包含 GROUP 子句的查询。包含相同组值的所有行被汇总到结果集的一行中。该结果集中包含的行数与您选择分组的列中的唯一值数相等。如果进行多列分组,结果集包含每个指定分组列组合的唯一值。

例如,您可以查询一个 titles 表,以找出每个出版商书的平均价格。要这样做,需将 pub_id 列分组,汇总指定出版商的所有行。结果如下所示:

相应的 SQL 语句如下所示:

SELECT pub_id, AVG(price) AveragePrice
FROM titles
GROUP BY pub_id