adwork 2007年01月30日
SELECT语句如何用一条语句实现在对部分列SUM的基础上再对其它列进行AVG
示例如下,有一个表,主键有三列,对其中一列SUM,一列AVG,一列显示:
CREATE TABLE [dbo].[u_team] (
[id_1] varchar(16) NOT NULL,
[id_avg] varchar(16) NOT NULL,
[id_sum] varchar(16) NOT NULL,

[the_sum] [numeric](18,2) NULL,
PRIMARY KEY (id_1, id_avg, id_sum)
) ON [PRIMARY]
GO

正常需要这样实现
SELECT id_1, AVG(the_sum) AS the_sum
FROM (SELECT id_1, id_avg, SUM(the_sum) AS the_sum FROM u_team
GROUP BY id_1, id_avg) v_temp
GROUP BY id_1

但因为多次用到这类查询语句,所以最好是能只用一次SELECT的语句来实现(建视图更不可取),列的语法复杂无所谓,只要不需两次SELECT就成。

各位有没有更好的方法?
...全文
275 点赞 收藏 6
写回复
6 条回复

还没有回复,快来抢沙发~

发动态
发帖子
疑难问题
创建于2007-09-28

9300

社区成员

12.1w+

社区内容

MS-SQL Server 疑难问题
社区公告
暂无公告