max()和min()函数有问题

时间:2011-03-01 11:02:18

标签: sql sql-server aggregate

我创建了以下表格

create table Interiors(
no integer,
name varchar,
type varchar,
dateofstock datetime,
price decimal(6,3),
discount numeric(6,2))

我想解决这两个问题。

  1. 通过将类型分组为“婴儿床”来显示类型,价格和折扣平均值。
  2. 通过将类型分组为“婴儿床”来显示价格的类型,最大值和最小值。
  3. 我为每个resp写了以下stmts。


    1. 通过'婴儿床'从室内设计组中选择类型,总和(价格),平均(折扣)。
    2. 通过'婴儿床'从室内设计组中选择类型,最大(价格),最小(价格)。

    3. 我得到了两个相同的错误,因为'类型不是聚合乐趣。或者它没有GROUP BY'条款。我该怎么做才能解决这些问题。

3 个答案:

答案 0 :(得分:1)

  

分组'婴儿床'。

您无法通过某个名称进行分组,您必须按列名进行分组。例如:

select type, sum(price), avg(discount) from Interiors group by type
or
select type, sum(price), avg(discount) from Interiors where type = 'baby cot' group by type

答案 1 :(得分:1)

您需要按字段名称分组,而不是按内容分组。如果您希望仅包含类型为“baby cot”的数据,则应在WHERE子句中包含该数据。例如......

SELECT
  type,
  SUM(price) AS "sum",
  AVG(price) AS "avg",
  MAX(price) AS "max",
  MIN(price) AS "min"
FROM
  Interiors
WHERE
  type = 'baby cot'
GROUP BY
  type

答案 2 :(得分:0)

请仔细阅读:http://msdn.microsoft.com/en-us/library/aa258901%28v=sql.80%29.aspx

这是SQL Server聚合函数的MSDN条目。有很多例子,包括你想要达到的目标。