برگزیده های پرشین تولز

GROUP BY و SUM بر اساس 2 فیلد

hossein_asp

کاربر تازه وارد
تاریخ عضویت
31 مارس 2005
نوشته‌ها
639
لایک‌ها
0
سن
39
محل سکونت
جایی که خدا نباشد

من سه تا فیلد به نام id و username و rate دارم حالا می خوام sum(rate) رو حساب کنم در واقع می خوام با یک کوئری نه فقط بر اساس id یکتا بلکه با استفاده از id و username یکتا Sum رو حساب کنم آیا اصلا امکان پذیر هست؟


rt.JPG
 

sajadonline

Registered User
تاریخ عضویت
22 آگوست 2006
نوشته‌ها
80
لایک‌ها
3
Sum کل table ro میخوایی ؟ بیشتر توضیح میدی ؟
 

jhoseinii

Registered User
تاریخ عضویت
20 فوریه 2006
نوشته‌ها
154
لایک‌ها
1
محل سکونت
تهران
کد:
select sum(`rate`) from `table_name`
منظورت از sum جمع rate در همه رکورد هاست دیگه ؟
 

hossein_asp

کاربر تازه وارد
تاریخ عضویت
31 مارس 2005
نوشته‌ها
639
لایک‌ها
0
سن
39
محل سکونت
جایی که خدا نباشد
select sum(`rate`) from `table_name` Group by id + username
Group by id + username اش من دراوردیه یه همچین چیزی میخوام یعنی سطرهایی که شامل username و id مشابه هست sum(ratesh) رو حساب کنه.
 

alireza sh

مدیر بازنشسته
تاریخ عضویت
2 ژانویه 2006
نوشته‌ها
2,775
لایک‌ها
70
سن
40
محل سکونت
نصف جهان
فروم که بیخود ایجاد نمیکنیم ! تشریف بیارین اینجا
 

hossein_asp

کاربر تازه وارد
تاریخ عضویت
31 مارس 2005
نوشته‌ها
639
لایک‌ها
0
سن
39
محل سکونت
جایی که خدا نباشد
اینجا رو دیدم سوتش حسابی کوره آدم رغبت نمی کنه تاپیک بزنه .حالا چرا میزنی خوب یا انتقال می دادید یا جواب.
 

alireza sh

مدیر بازنشسته
تاریخ عضویت
2 ژانویه 2006
نوشته‌ها
2,775
لایک‌ها
70
سن
40
محل سکونت
نصف جهان
قربان بنده که جسارتی نکردم ! اگر از دست من ناراحتید عذر خواهی میکنم .

در مورد جواب سوال شما :
از آنجایی که SUM یک تابع حمعی است باید از group by استفاده کنید . در Group by هم نمیتوانید 3 ستون داشته باشید .
یک نکته : مگر ID یکتا نیست ؟ پس هر کاربر فقط یک رکورد و یک Rate دارد . درسته ؟

لطفا سوال را واضح تر مطرح کنید .
 

hossein_asp

کاربر تازه وارد
تاریخ عضویت
31 مارس 2005
نوشته‌ها
639
لایک‌ها
0
سن
39
محل سکونت
جایی که خدا نباشد
قربان بنده که جسارتی نکردم ! اگر از دست من ناراحتید عذر خواهی میکنم .

در مورد جواب سوال شما :
از آنجایی که SUM یک تابع حمعی است باید از group by استفاده کنید . در Group by هم نمیتوانید 3 ستون داشته باشید .
یک نکته : مگر ID یکتا نیست ؟ پس هر کاربر فقط یک رکورد و یک Rate دارد . درسته ؟

لطفا سوال را واضح تر مطرح کنید .

نه خواهش میکنم این حرف ها چیه.

نه id نمیتونه یکتا باشه چون ساختار اجازه نمیده id+username یک حالت یکتا ایجاد میکنند فکر کنم این سوال من عملا نشدنی هست تصمیم گرفتم username+id کنم یه فیلد یکتا ایجاد بعد Group by رو از فلید جدید حساب کنم کنم این کار فکر کنم راحت تر باشه.

از همه کسانی که تلاش کردند کمک کنند متشکر.
 

POXER

Registered User
تاریخ عضویت
20 جولای 2011
نوشته‌ها
61
لایک‌ها
3
در SQLServer نمیدانم اما در بانک های اطلاعاتی دیگر این کار به راحتی زیر امکان پذیر است :
کد:
Select 
	col_1, 
	col_2, 
	sum(rate) as rate_sum 
from 
	table
Group By
	col_1, 
	col_2
در بانک اطلاعاتی SQLServer نیز بدون شک این دستورات به همین نحو باید اجرا شوند
 

Elfin

Registered User
تاریخ عضویت
9 جولای 2006
نوشته‌ها
798
لایک‌ها
4
در SQLServer نمیدانم اما در بانک های اطلاعاتی دیگر این کار به راحتی زیر امکان پذیر است :
کد:
Select 
    col_1, 
    col_2, 
    sum(rate) as rate_sum 
from 
    table
Group By
    col_1, 
    col_2
در بانک اطلاعاتی SQLServer نیز بدون شک این دستورات به همین نحو باید اجرا شوند
کد بالا توی SQL SERVER هم به خوبی جواب میده !
فقط توجه کنید هر ستونی که اسمش جلوی select هست باید اسمش جلوی Group by هم باشه !
 

elna

کاربر تازه وارد
تاریخ عضویت
15 سپتامبر 2013
نوشته‌ها
34
لایک‌ها
3
Ban kanid MARAB,BAkoshid MARAv
 
بالا