PDA

View Full Version : select Distinct filed1 from tablename



rooja_59
چهارشنبه 19 آبان 1389, 15:01 عصر
سلام در مورد گرفتن میانگین یک فیلد بر اساس فیلد تکراری دیگری در جدول سوال داشتم
من این query را برای از بین بردن رکورود های تکراری استفاده کردم اما نمیدانم برای گرفتن میانگین فیلد نمرات این رکورد های distinct شده چه کاری باید انجام دهم . متشکرم : کد من به این صورت میباشد :
select Distinct filed1 from tablename

Rezahak
چهارشنبه 19 آبان 1389, 15:13 عصر
بنويسيد :
SELECT avg(tmptbl.fld) FROM (SELECT distict fld FROM tbl) AS tmptbl

EffatBandehlou
چهارشنبه 19 آبان 1389, 15:16 عصر
select distinct ave(field1) from tablename
رو امتحان کن.
البته برای رفع تکراری می تونی group by هم بزنی به جای distinct

حمیدرضاصادقیان
چهارشنبه 19 آبان 1389, 15:23 عصر
سلام.


البته برای رفع تکراری می تونی group by هم بزنی به جای distinct

این چه ارتباطی به حذف رکوردهای تکراری داره؟ پست شماره 2 صحیحه. Group by برای اینه که وقتی از فیلدهای محاسباتی استفاده میکنی برای هر رکورد ، مقدار محاسبه شده اونو نمایش بده و ارتباطی به حذف رکوردهای تکراری نداره. فقط رکوردهارو باهم جمع میکنه. ایشون میخوان رکوردهای تکراری حذف بشه بعد محاسبات صورت بگیره نمیخواد روی مجموع رکوردهای تکراری محاسبات انجام بده.
موفق باشید

rooja_59
چهارشنبه 19 آبان 1389, 15:55 عصر
سلام.



این چه ارتباطی به حذف رکوردهای تکراری داره؟ پست شماره 2 صحیحه. Group by برای اینه که وقتی از فیلدهای محاسباتی استفاده میکنی برای هر رکورد ، مقدار محاسبه شده اونو نمایش بده و ارتباطی به حذف رکوردهای تکراری نداره. فقط رکوردهارو باهم جمع میکنه. ایشون میخوان رکوردهای تکراری حذف بشه بعد محاسبات صورت بگیره نمیخواد روی مجموع رکوردهای تکراری محاسبات انجام بده.
موفق باشید

سلام نه اتفاقا من میخوام روی مجموع رکود های تکراری میانگین انجام بگیره . متشکرم . حالا اگه منو راهنمایی کنین منون میشم .

Reza_Yarahmadi
چهارشنبه 19 آبان 1389, 16:01 عصر
ميتونيد بصورت زير عمل كنيد

Select Field1, AVG(Field1) From TableName Group By Field1

Rezahak
چهارشنبه 19 آبان 1389, 16:05 عصر
select avg(fld) from tbl where fld in(select fld from tbl group by fld having count(fld)>1)