PDA

View Full Version : سوال: نمایش 50% ابتدایی و یا انتهایی جدول



h.rezaee
دوشنبه 16 تیر 1393, 12:37 عصر
سلام به اساتید و دوستان گرامی. نماز روز هاتون قبول حق. یک سوالی برای بنده بوجود آمده و اونم هم اینه که چه جوری میشه به عنوان مثال 50 % رکورد های ابتدایی جدول در mysql رو نمایش بدیم؟ در sql server با استفاده از دستور top 50 percent این را انجام پذیر هستش اما در mysql نمیدونم چجوریه.
البته طبق جستجو هایی که انجام دادم در موتور های جستجو،دستور زیر تقریبا این کار رو انجام میده اما نه به درستی!!!!

SELECT * FROM `category` WHERE id < (select floor(count(1) * 50 / 100.0) from category)

طبق این دستور ، ابتدا میاد تعداد رکورد ها رو می شمرد، سپس رکورد هایی که از نصف تعداد کل رکورد ها کمتر است رو نمایش میده،در این صورت مثلا تعداد رکورد های ثبت شده در جدول به عنوان مثال 12 باشد ولی شماره id ثبت شده وقتی از 15 به بعد باشد اون موقع هیچ رکوردی نمایش داده نمیشه. ممنون میشم راهنمایی کنید.

us1234
دوشنبه 16 تیر 1393, 18:35 عصر
این کوئری 10 درصد بالا را بر میگردونه :

SELECT*FROM (
SELECT category.*, @counter := @counter +1 AS counter
FROM (select @counter:=0) AS initvar, category
) AS X
where counter <= (10/100 * @counter);