ورود

View Full Version : نمایش رکوردی که دارای بیشترین لایک است



imdeveloper
یک شنبه 03 خرداد 1394, 10:46 صبح
سلام
میخوام کوئری بنویسم که رکوردی که بیشترین لایک رو داره رو نشون بده
من کد زیر رو نوشتم اما کد زیر فقط فیلد لایک رو میاره درصورتی که من میخوام کل اون رکوردی که فیلد لایکش دارای بیشترین مقدار هست رو بیاره :

Select MAX(Likes) from Tbl_Product

tooraj_azizi_1035
یک شنبه 03 خرداد 1394, 10:51 صبح
سلام
در صورت وجود ایندکس روی Likes :

select Top 1 * from Tbl_Product
order by Likes desc

در صورت عدم وجود ایندکس:

select top 1 * from Tbl_Product
where Likes = (select max(Likes) from Tbl_Product)

البته نکته ای که وجود داره اینه که اگه کوئری دوم رو وقتی ایندکس روی Likes داریم اجرا کنید SQL Server تنها یک اسکن از نوع Ordered اجرا می کنه (یعنی سطح برگ ایندکس رو به ترتیب اسکن می کنه) یعنی همون پلن اجرای کوئری بالایی رو که نشان از Optimize کوئری دارد.

omidparkour
یک شنبه 03 خرداد 1394, 11:16 صبح
باسلام
کد زیر هم فکر میکنم کار کنه :
select * from Tbl_Product where Likes in(Select MAX(Likes) from Tbl_Product)