View Full Version : سوال: جدا کردن یک فیلد با بیشترین دفعات تکرار
mrs Izadi
پنج شنبه 06 آبان 1389, 09:25 صبح
با سلام
لطفا من رو در نوشتن این دستور select راهنمایی کنید.
من قصد دارم در این دستور مقداری که بیشترین دفعات تکرار را دارد select کنم در واقع شرط دستور به این صورت باشد:
COUNT(Statuse) = MAX(COUNT(Statuse))
ولی این دستور در SQL معتبر نیست. لطفا را هنمایی کنید.
متشکرم
behrouzlo
پنج شنبه 06 آبان 1389, 09:57 صبح
می توان به چند روش اینکار را انجام داد :
Select Max(Statuse)
From ( Select Count(Statuse) As Statuse
From Tbl
Group By
) As List ]
یا روش معروف مرتب سازی
Select Top 1 Count(Statuse)
From Tbl
Group By Code
Order by Count(Statuse) DESC
حمیدرضاصادقیان
پنج شنبه 06 آبان 1389, 10:21 صبح
ممنون از آقای Behrouzlo .فکر میکنم کوئری اولشون مناسبتر باشه و از لحاظ Performance بازدهی بیشتری نسبت به دومی داره.چون در دومی یک بار شما ORder by desc انجام میدید و این عمل باعث میشه یک بار تمامی اطلاعات load شده و مرتب شود که سرعت کار شما رو کاهش میده.
موفق باشید
mrs Izadi
پنج شنبه 06 آبان 1389, 10:25 صبح
ممنون از دوستانی که کمک کردند اما فکر میکنم نتونستم منظورم رو برسونم من مقدار Statuse رو میخوام نه تعداد دفعات تکرارش رو
behrouzlo
پنج شنبه 06 آبان 1389, 10:56 صبح
کد ریر را تست کنید:
With List As ( Select Statuse,Count(Statuse) As StatuseCount
From Tbl
Group By Statuse)
Select Statuse
From List Where StatuseCount = (Select Max(StatuseCount) From List)
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.