এসকিউএল - প্রথম 10 টি সারিটি নির্বাচন করুন?


124

আমি কীভাবে কোনও প্রশ্নের প্রথম প্রথম 10 টি ফলাফল নির্বাচন করব?

আমি নিম্নলিখিত কোয়েরি থেকে শুধুমাত্র প্রথম 10 ফলাফল প্রদর্শন করতে চাই:

SELECT a.names,
         COUNT(b.post_title) AS num
    FROM wp_celebnames a
    JOIN wp_posts b ON INSTR(b.post_title, a.names) > 0
    WHERE b.post_date > DATE_SUB(CURDATE(), INTERVAL 1 DAY)
GROUP BY a.names
ORDER BY num DESC

3
দয়া করে ডাটাবেস (এবং সংস্করণ) উল্লেখ করুন।
বিকাশ গোয়েল

2
নতুন উত্তর হওয়া উচিত, stackoverflow.com/a/36476971/124486
ইভান ক্যারল

শীর্ষস্থানীয় 10
বন্দী

উত্তর:


173

এসকিউএল সার্ভারে, ব্যবহার করুন:

select top 10 ...

যেমন

select top 100 * from myTable
select top 100 colA, colB from myTable

মাইএসকিউএলে, ব্যবহার করুন:

select ... order by num desc limit 10

44

আপনার আরডিবিএমএস উপর নির্ভর করে

এমএস এসকিউএল সার্ভার

SELECT TOP 10 ...

মাইএসকিউএল

SELECT ... LIMIT 10

সাইবেস

SET ROWCOUNT 10
SELECT ...

প্রভৃতি


7
... সীমা 10 সিনট্যাক্স এছাড়াও sqlite3 দ্বারা ব্যবহৃত হয়
দেয়

24

মাইএসকিউএল এ:

SELECT * FROM `table` LIMIT 0, 10

1
সীমা 0, 10 এবং সীমা 10 এর মধ্যে পার্থক্য কী? এবং কেন 10, 20 সীমাবদ্ধ করে না আমাকে 10 তম এবং 20 তম সারির মধ্যে 10 সারি দেয়? সম্পাদনা: ওহ, সুতরাং সীমা 10, 20 এর অর্থ 10 তম সারির পরে আমাকে 20 সারি দিন। আমি যদি 10 এবং 20 এর মধ্যে সারি চাই তবে আমাকে 10, 10 সীমা করতে হবে Thanks ধন্যবাদ!
আবদুররেহমান খান

21

এএনএসআই এসকিউএল উত্তরটি FETCH FIRST

SELECT a.names,
         COUNT(b.post_title) AS num
    FROM wp_celebnames a
    JOIN wp_posts b ON INSTR(b.post_title, a.names) > 0
    WHERE b.post_date > DATE_SUB(CURDATE(), INTERVAL 1 DAY)
GROUP BY a.names
ORDER BY num DESC
FETCH FIRST 10 ROWS ONLY

আপনি যদি সম্পর্কগুলি অন্তর্ভুক্ত করতে চান তবে FETCH FIRST 10 ROWS WITH TIESপরিবর্তে করুন।

নির্দিষ্ট সংখ্যক সারি বাদ দিতে OFFSET, যেমন , ব্যবহার করুন

...
ORDER BY num DESC
OFFSET 20
FETCH FIRST 10 ROWS ONLY

প্রথম 20 টি সারি এড়িয়ে যাবে এবং তারপরে 10 টি সারি আনবে।

ওরাকল, পোস্টগ্রেএসকিউএল , এমএস এসকিউএল সার্ভার, মিমার এসকিউএল এবং ডিবি 2 ইত্যাদির নতুন সংস্করণ দ্বারা সমর্থিত


20

স্ট্যান্ডার্ড এসকিউএল এ আপনি ব্যবহার করতে পারেন:

... FETCH FIRST 10 ROWS ONLY

এটি ডিবি 2, পোস্টগ্রেএসকিউএল এবং ওরাকল 12.1 (এবং পরে) এ সমর্থিত


পোস্টগ্রিএসকিউএল-র জন্যও
ralf.w.

18

আকাশবাণী

WHERE ROWNUM <= 10  and whatever_else ;

ROWNUMএকটি ম্যাজিক ভেরিয়েবল যা প্রতিটি সারির ক্রম সংখ্যা 1 .. এন অন্তর্ভুক্ত করে


1
এটা ভুল. "রোউনাম" টেবিল থেকে শীর্ষে 'এন' সারি আনবে। এটি "যাইহোক_সলে" শর্ত থেকে ফিল্টার করবে না!
বিকাশ গোয়েল

stackoverflow.com/questions/874082/… অনুগ্রহ করে ওরাকল সম্পর্কিত ডিবি
বিকাশ গোয়েল

2
SELECT *  
  FROM (SELECT ROW_NUMBER () OVER (ORDER BY user_id) user_row_no, a.* FROM temp_emp a)  
 WHERE user_row_no > 1 and user_row_no <11  

এটি আমার পক্ষে কাজ করেছে i আমি যদি থাকতে পারি তবে আমার কাছে কয়েকটি দরকারী ডিবিস্ক্রিপ্ট রয়েছে যা আপনি দেখতে পারেন

দরকারী ডাবসক্রিপ্ট


2

আপনি যা সন্ধান করছেন তা হ'ল একটি সীমাবদ্ধ ধারা।

SELECT a.names,
         COUNT(b.post_title) AS num
    FROM wp_celebnames a
    JOIN wp_posts b ON INSTR(b.post_title, a.names) > 0
    WHERE b.post_date > DATE_SUB(CURDATE(), INTERVAL 1 DAY)
GROUP BY a.names
ORDER BY num DESC
   LIMIT 10




আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.