select price,subtotal,name
from yourtable
compute avg(price),sum(subtotal) by name
from yourtable
compute avg(price),sum(subtotal) by name
解决方案 »
- 某个存储过程所在数据库
- 新安装sql2008 r2 出现这个问题 头疼
- 输出参数在存储过程里面能调用吗
- 不用存储过程,如何在执行一个INSERT语句后,返回新记录的主键值。(DOTNET)
- Sql2000 的服务管理器的 【SQL Server】 启动不了,各位大侠快来帮忙!!!
- 请问sql server 2005 通过链接服务器 联到oracle 9i ,如果能提高速度!
- 跪求一SQL语句!快来救命啊!排序问题!在线等.....
- 急!!!请问sql server不支持length函数吗?
- 菜鸟问题-vb访问数据库 如何进行 打包为exe文件???
- 如何卸载SQL Server?
- 怎么将一个表中的备注型值拷备到另一个表的相同中呀!?
- 用Access能否制作一个小的数据库?
from yourtable
order by name
compute avg(price),sum(subtotal) by name
sum(subtotal)是销量,我要总销售价值。
聚合函数我不太会用
price(价格) subtotal(销量) name(名称)
23.00 877889 w
22.00 77887 w
21.00 86666 w
是(23.00+22.00+21.00)/3,还是(23*877889+22.00*77887+21.00*86666)/(877889+77887+86666)
下面这个语句是对于平均价格的计算是第一种情况的
SELECT name,SUM(price*subtotal) AS 总销售价值,AVG(price) GROUP BY NAME
SELECT name,SUM(price*subtotal) AS 总销售价值,SUM(price*subtotal)/SUM(subtotal) AS 平均价格 GROUP BY NAME
我的表中就只有三条记录。你的这个语句,产生一条纪录(我的表数据最初的有错,靠下面的一点才是队的),我想要三条或者多条含有“w”的纪录,
同时,还要在一个结果集中处理平均值,总销售价值
from yourtable
order by name
compute avg(price),SUM(price*subtotal)
你好!
(sql server 2000)报告“选择列表中不存在第 1 条 COMPUTE 子句的第 2 个聚合表达式”。
怎么我的总是不行呢?
感谢您热心的回答!
按您最后一个sql语句,得出的是两个结果集,如果我要一个结果集,可不可以办到,这时候可能结果集不止3条纪录(我的表现有三条记录)?另外,如果两个结果集怎么通过程序(比如用asp通过odbc连接)读取呢?处理方式是不是还和以前相同?
select name, sum(price*subtotal)/sum(subtotal)
from yourtable
group by name
通过使用Group By 子句只能产生一个结果集。针对分类分出的每一类数据只能产生一个结果,包括分类的列和进行统计计算的列。在使用了Group By 子句的SELECT字句中始终只能包含分类所需的列和进行统计计算的列。
COMPUTE子句可以返回多中结果集。一种是体现数据细节的每一行数据,并可以按分类要求进行正确的分类;另一种结果是在分类基础上进行求和统计运算。在使用COMPUTE子句的SELECT句子中可以包含除分类所需的列和统计计算列以外的其他列。
注意,在compute子句中order by的用途。
在ASP中调两个结果集可能比较困难,你可以在group by(一个结果集)的基础上用游标实现。