SQL 所有列中大于某个数的数据的平均值

需要求每列的平均值起初是直接用AVG但是里面有些没用的数据需要摒弃掉有没有什么简单点的方法?(列很多)比如说求没列>0的数据的平均值期望跟直接selectAVG(..)f... 需要求每列的平均值 起初是直接用AVG 但是里面有些没用的数据需要摒弃掉 有没有什么简单点的方法?(列很多)
比如说 求没列>0的数据的平均值 期望跟直接select AVG(..) from 表1的结构差不多
A B C D E F G
13 10 0 7 6 12 18
24 0 7 9 11 10 5

0 10 0 14 4 9 8

17 19 10 0 3 2 0

31 50 9 1 0 2 11
展开
 我来答
匿名用户
2013-03-06
展开全部
你是要求 A B C D E F G 全部都 大于 0 的 AVG 么?

SELECT
AVG(A) AS A ,
...... 一堆 AVG 我就省略了 关键在 WHERE
FROM

WHERE
LEAST ( A , B , C , D , E , F , G ) > 0;

注:

LEAST 函数, 是获取一堆参数里面, 最小的那一个。

例如:

SQL> SELECT
2 LEAST(1,3,5,7,9) A
3 FROM
4 dual;

A
----------
1

SQL> select least('aa', 'bb', 'cc') A
2 from dual;

A
--
Aa

GREATEST 是取最大。

SQL> SELECT
2 GREATEST(1,3,5,7,9) A
3 FROM
4 dual;

A
----------
9

SQL> select greatest('aa', 'bb', 'cc') A
2 from dual;

A
--
cc
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
haona_li
2013-03-06 · TA获得超过253个赞
知道小有建树答主
回答量:624
采纳率:0%
帮助的人:257万
展开全部
select avg(A)
from tab
where a>0 and b>0 ... and g>0

是这样吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szm341
2013-03-06 · TA获得超过6725个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5091万
展开全部
select sum(A*1.0)/sum(case a>0 then 1 else 0 end) as A from tb
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Xiao__六
2013-03-06
知道答主
回答量:10
采纳率:0%
帮助的人:4.1万
展开全部
好像只能一列一列的求吧,AVG必须配上group by
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式