m_u3fi
چهارشنبه 11 آبان 1390, 12:07 عصر
میخوام با استفاده از یک SELECT روی چند ستون جدولم میانگین بگیرم
یه چیزی شبیه به این (البته میدونم این درست نیست)
select AVG(a1),AVG(a2),AVG(a3)
from A
where Key = 1
با توجه به اینکه شرط ها برای AVG روی هر ستون متفاوته مثلا برای AVG روی a1 باید شرط a1>0 برقرار باشد و برای a2 شرط a2 >2
آیا دستوری برای این وجود داره؟
این دستور به کارم نمیاد
select
(select avg(a1) from table1 where a1<>0) as avg1,(select avg(a2) from table1 where a2<>0)
چون جدول مورد نظر بسیار بزرگه و این دستور هم درون یک حلقه است که زیاد تکرار میشه در واقع میخوام به ازای هر key فقط یک select اجرا بشه
یه چیزی شبیه به این (البته میدونم این درست نیست)
select AVG(a1),AVG(a2),AVG(a3)
from A
where Key = 1
با توجه به اینکه شرط ها برای AVG روی هر ستون متفاوته مثلا برای AVG روی a1 باید شرط a1>0 برقرار باشد و برای a2 شرط a2 >2
آیا دستوری برای این وجود داره؟
این دستور به کارم نمیاد
select
(select avg(a1) from table1 where a1<>0) as avg1,(select avg(a2) from table1 where a2<>0)
چون جدول مورد نظر بسیار بزرگه و این دستور هم درون یک حلقه است که زیاد تکرار میشه در واقع میخوام به ازای هر key فقط یک select اجرا بشه