বেতন টেবিল থেকে তৃতীয় বা nᵗʰ সর্বাধিক বেতন কীভাবে পাবেন?


100

কিভাবে অনুকূলিত উপায়ে বেতন থেকে তৃতীয় বা n তমতম বেতন পাবেন table(EmpID, EmpName, EmpSalary)?



4
SELECT salary FROM (SELECT salary FROM employee ORDER BY salary DESC FETCH NEXT 3 ROWS ONLY) ORDER BY salary ASC FETCH NEXT 1 ROWS ONLY;
সাথভিক

উত্তর:


85

ব্যবহারের ROW_NUMBERঅথবা (আপনি একটি একক চান) DENSE_RANK(সব সংশ্লিষ্ট সারির):

WITH CTE AS
(
    SELECT EmpID, EmpName, EmpSalary,
           RN = ROW_NUMBER() OVER (ORDER BY EmpSalary DESC)
    FROM dbo.Salary
)
SELECT EmpID, EmpName, EmpSalary
FROM CTE
WHERE RN = @NthRow

টেবিল থেকে ন্যূনতম বেতনের রেকর্ড কীভাবে পাবেন? ins.KYS_ID, ins.FKYS_INS_ID সেমিএন_পাট_এক্স_ ইনসুরেন্স ইনস থেকে নির্বাচন করুন যেখানে ins.FKYS_PAT_ID = '1253_717' এবং ইনস.ফ.কি.এস.পি.এস.পি.ওয়াই.পি. (1) এবং ইনস। BOL_TYPE (1,3) এবং ইনসালার ইন (মিনিট (ইনসালারি))
11:36

কল্পনা করুন, কর্মচারী টেবিলে 10,0000 টি রেকর্ড রয়েছে। আমি যদি উপরের ক্যোয়ারীটি ব্যবহার করি তবে কর্মক্ষমতাটি 6-10 গুণ কমবে।
বিমল দাস

4
@ বিমলডাস: তাহলে EmpSalaryকলামে আপনার কোনও সূচি নেই । এছাড়াও, কি তুলনায় হ্রাস? ROW_NUMBERপদ্ধতির সুবিধা হ'ল আপনি ব্যবহার করতে পারেন ..OVER(PARTITION BY GroupColumn OrderBy OrderColumn)। সুতরাং আপনি গ্রুপগুলি পেতে এটি ব্যবহার করতে পারেন তবে এর যে কোনও কলামে অ্যাক্সেস করতে পারেন।
টিম শ্মেলেটার

@ টিমস্মেলটার উইথ সিটিই এটিতে প্রথম নির্বাচনী বিবৃতিটির সম্পূর্ণ ডেটা সংরক্ষণ করার জন্য একটি অস্থায়ী টেবিল তৈরি করবে, তারপরে ফলাফল থেকে আমরা "নির্বাচন করুন এমটিইড এমপিড, এমপনেম, এমপি স্যালারি ফর্ম সিটিই যেখানে যেখানে আরএন = @ নবম"। এ কারণেই আমার ধারণা এটি খুব ধীর। আমি এটি পরীক্ষা করেছিলাম। এবং আমার যথাযথ সূচকও রয়েছে।
বিমল দাস

4
@ বিমলডাস: না, এটি একটি অস্থায়ী টেবিল তৈরি করছে না। একটি সিটি সাধারণত কোথাও বাস্তবায়িত হয় না। এটি আরও একটি ইনলাইন ভিউ বা নামযুক্ত সাবকোয়ারির মতো।
টিম শ্মেলেটার

90

সারি সংখ্যা:

SELECT Salary,EmpName
FROM
  (
   SELECT Salary,EmpName,ROW_NUMBER() OVER(ORDER BY Salary) As RowNum
   FROM EMPLOYEE
   ) As A
WHERE A.RowNum IN (2,3)

উপ-প্রশ্ন:

SELECT *
FROM Employee Emp1
WHERE (N-1) = (
               SELECT COUNT(DISTINCT(Emp2.Salary))
               FROM Employee Emp2
               WHERE Emp2.Salary > Emp1.Salary
               )

শীর্ষ কীওয়ার্ড:

SELECT TOP 1 salary
FROM (
      SELECT DISTINCT TOP n salary
      FROM employee
      ORDER BY salary DESC
      ) a
ORDER BY salary

টেবিল থেকে ন্যূনতম বেতনের রেকর্ড কীভাবে পাবেন? ins.KYS_ID, ins.FKYS_INS_ID সেমিএন_পাট_এক্স_ ইনসুরেন্স ইনস থেকে নির্বাচন করুন যেখানে ins.FKYS_PAT_ID = '1253_717' এবং ins.FKYS_INS_TYPE ইন (1) এবং ইন (বি।
saidesh kilaru

কুমার ও আলেকজান্ডার, আমি এর সাথে আরও একটি ক্ষেত্র পেতে চাই, কীভাবে এটি করব? আমার প্রশ্নটি "" "নোটএজ হিসাবে শীর্ষস্থানীয় 1 নোটআইডি থেকে নির্বাচন করুন (ডেটডিফ (বছর, সময়সূচি, কারেন্টটাইমস্ট্যাম্প) নির্বাচন করুন, [ডিবিও] থেকে শীর্ষ 3 নোটআইডি নির্বাচন করুন। [ডকসচেডুয়েল] নোটআইডি ডেস্কের আদেশ) নোটআইডি-র দ্বারা আদেশ" ""
জাভেদ আব্বাসী

আমি নবম সর্বাধিক বেতনের সন্ধান করছি তবে আমি সাব-কোয়েরি বুঝতে জটিলতা পাচ্ছি, আপনি কি সাব-কোয়েরিটি ব্যাখ্যা করতে চান ...
দীপক গুপ্ত

@ প্রদীপ_জাভা সাবকিউরিটি প্রতিটি বার মূল্যায়ন করা হয় এবং প্রতিবার বাইরের কোয়েরি দ্বারা একটি সারিতে প্রক্রিয়া করা হয়। অন্য কথায়, অভ্যন্তরীণ কোয়েরিটি বহির্মুখী ক্যোয়ারির সাথে স্বাধীনভাবে প্রক্রিয়া করা যায় না কারণ অভ্যন্তরীণ কোয়েরিটি এম 1 মানটি ব্যবহার করে।
কুমার মনীষ

এটি কেন ... WHERE (N-1) = (Subquery)...কাজ করে তা বোঝা গুরুত্বপূর্ণ । সাবকিউরিটি একটি সম্পর্কিত সম্পর্কযুক্ত ক্যোয়ারী, যেহেতু এর WHEREধারাটি Emp1মূল কোয়েরি থেকে ব্যবহার করে। সাবকিউরিটি প্রতিটি সারির মূল ক্যোয়ারির স্ক্যানের সময় মূল্যায়ন করা হয়। উদাহরণস্বরূপ, যদি আমরা (800, 1000, 700, 750) থেকে তৃতীয় বৃহত্তম বেতন (এন = 3) সন্ধান করি তবে 1 ম সারির সাবকোয়ারিটি SELECT COUNT(DISTINCT(Emp2.Salary)) FROM Employee Emp2 WHERE Emp2.Salary > 8000 হবে। চতুর্থ বেতনের মূল্য (750) ... WHERE Emp2.Salary > 750হবে 2, বা এন -1, সুতরাং এই সারিটি ফিরে আসবে।
জেরিমাউস

66

এটা চেষ্টা কর

SELECT TOP 1 salary FROM (
   SELECT TOP 3 salary 
   FROM employees 
   ORDER BY salary DESC) AS emp 
ORDER BY salary ASC

3 এর জন্য আপনি কোনও মান প্রতিস্থাপন করতে পারেন ...


এটি কি ওরাকল 10 জি বা 11 জি দিয়ে কাজ করে? বা এমন বিকল্প আছে যা বেশ সুন্দর?
আরবিজেট

43

আপনি যদি অনুকূলিতকরণের উপায়ের অর্থ TOPকীওয়ার্ডটি ব্যবহার করতে চান , তবে নবম সর্বাধিক এবং ন্যূনতম বেতনের ক্যোয়ারী নীচের অনুসারে তবে প্রশ্নগুলি মোট ফাংশন নামগুলি ব্যবহার করে বিপরীত ক্রমের মতো দেখতে জটিল বলে মনে হচ্ছে:

এন সর্বাধিক বেতন:

SELECT MIN(EmpSalary)
FROM Salary
WHERE EmpSalary IN(SELECT TOP N EmpSalary FROM Salary ORDER BY EmpSalary DESC) 

যেমন: 3 সর্বাধিক বেতন:

SELECT MIN(EmpSalary)
FROM Salary
WHERE EmpSalary IN(SELECT TOP 3 EmpSalary FROM Salary ORDER BY EmpSalary DESC) 

ন্যূনতম বেতন:

SELECT MAX(EmpSalary)
FROM Salary
WHERE EmpSalary IN(SELECT TOP N EmpSalary FROM Salary ORDER BY EmpSalary ASC)

প্রাক্তন হিসাবে: 3 সর্বনিম্ন বেতন:

SELECT MAX(EmpSalary)
FROM Salary
WHERE EmpSalary IN(SELECT TOP 3 EmpSalary FROM Salary ORDER BY EmpSalary ASC)

সবচেয়ে সহজ এবং মনে রাখা সবচেয়ে সহজ। +1 টি
Sнаđошƒаӽ

4
আমরা কেন এএসসি অর্ডারে করছি সর্বাধিক বেতন পাওয়ার জন্য, এটি ডিইএসসি অর্ডারে করতে হবে, আমাদের যদি এই 000,০০,10000,11000,500,800,900,12000 এর মতো বেতন থাকে তবে বাছাইয়ের অভ্যন্তরীণ কোয়েরিটি টুপি -২০ এর অর্থ হবে ৫০০,৮০০,৯০০ এবং এর সর্বাধিক 900, তবে 900 নয় 3 সর্বোচ্চ, 3 সর্বোচ্চ বেতন 10000
নরেন্দ্র জাগি

4
প্রাক্তন: 3 সর্বাধিক বেতনের জন্য: এটি স্যালারি মিন (এমপাসেলারি) এর মতো হতে হবে যেখানে এমপাসেলারিতে (এমপ্যাসেলারি ডিইএসসি দ্বারা স্যালারি শীর্ষে শীর্ষ 3 নির্বাচন করুন)
জিমিত রুপানী

15

আপনি যদি সাব কোয়েরি ব্যবহার করেন তবে খুব সহজ!

SELECT MIN(EmpSalary) from (
SELECT EmpSalary from Employee ORDER BY EmpSalary DESC LIMIT 3
);

আপনি এখানে সীমাবদ্ধতার পরে কেবলমাত্র নবম মান পরিবর্তন করতে পারেন।

এখানে এই সাব কোয়েরিতে এমপ্যালেরি ডিইএসসি সীমা 3 দ্বারা কর্মচারী আদেশ থেকে এমপ্যাসারি নির্বাচন করুন; কর্মচারীদের শীর্ষ 3 বেতন প্রদান করবে। ফলাফলের বাইরে আমরা কর্মচারীর তৃতীয় শীর্ষস্থানীয় বেতন পেতে এমআইএন কমান্ড ব্যবহার করে ন্যূনতম বেতনটি বেছে নেব।


এই ত্রুটি পাওয়া। ত্রুটির কোড: 1248 প্রতিটি উত্পন্ন টেবিলের অবশ্যই নিজস্ব নিজস্ব নাম থাকতে হবে

এতে একটি উপাধ যুক্ত করুন .. এসএমএস হিসাবে এমপ্ল (এমপ্ল্যাসারি) থেকে এমপ্লয়ার অর্ডার থেকে এমপ্লয়ার অর্ডার থেকে নির্বাচন করুন;
অ্যালেক্স

এমপ্যাসেলারি ডিইএসসি লিমিটেড 3 দ্বারা কর্মচারী অর্ডার থেকে (নির্বাচন করুন ডিস্টিন্ট (এমপ্যাসেলারি) থেকে ডুপ্লিকেটগুলি SELECT MIN (EmpSalary) এড়ানোর জন্য কেবল DISTINCT ব্যবহার করুন;
কল্পনা পরীখ

14

আপনার সর্বোচ্চ নম্বর দিয়ে এন প্রতিস্থাপন করুন

SELECT *
FROM Employee Emp1
WHERE (N-1) = (
SELECT COUNT(DISTINCT(Emp2.Salary))
FROM Employee Emp2
WHERE Emp2.Salary > Emp1.Salary)

ব্যাখ্যা

উপরের ক্যোয়ারীটি বেশ বিভ্রান্তিকর হতে পারে যদি আপনি এর আগে এর মতো কিছু না দেখেন - অভ্যন্তরীণ কোয়েরিটিকে একে কোলেলেটেড সাব-কোয়েরি বলা হয় কারণ অভ্যন্তরীণ কোয়েরি (সাবকোয়ারি) বাইরের কোয়েরি থেকে একটি মান ব্যবহার করে (এক্ষেত্রে এমপি 1 টেবিল) ) এটিতে যেখানে ক্লজ রয়েছে।

এবং উত্স


+1 কেন ... WHERE (N-1) = (Subquery)...কাজ করে তা বোঝা গুরুত্বপূর্ণ । সাবকিউরিটি একটি সম্পর্কিত সম্পর্কযুক্ত ক্যোয়ারী, যেহেতু এর WHEREধারাটি Emp1মূল কোয়েরি থেকে ব্যবহার করে। সাবকিউরিটি প্রতিটি সারির মূল ক্যোয়ারির স্ক্যানের সময় মূল্যায়ন করা হয়। উদাহরণস্বরূপ, যদি আমরা (800, 1000, 700, 750) থেকে তৃতীয় বৃহত্তম বেতন (এন = 3) সন্ধান করি তবে 1 ম সারির সাবকোয়ারিটি SELECT COUNT(DISTINCT(Emp2.Salary)) FROM Employee Emp2 WHERE Emp2.Salary > 8000 হবে। চতুর্থ বেতনের মূল্য (750) ... WHERE Emp2.Salary > 750হবে 2, বা এন -1, সুতরাং এই সারিটি ফিরে আসবে।
জেরিমাউস

13

সাবকিউরি ব্যবহার না করে বেতন টেবিল থেকে তৃতীয় বা নবম সর্বাধিক বেতন

select salary from salary
   ORDER   BY salary DESC
   OFFSET  N-1 ROWS
   FETCH NEXT 1 ROWS ONLY

তৃতীয় সর্বোচ্চ বেতনের জন্য এন -১ এর স্থলে 2 রাখুন


4
এসএকিউএল সার্ভার ২০১২ সংস্করণ থেকে অফসেট ফেচ উপলব্ধ is
Zerotoinfinity



8

নবম সর্বাধিক বেতন পাওয়ার জন্য নিম্নলিখিত কোয়েরিটি দেখুন। এইভাবে আপনি এমওয়াইএসকিউএলে নবম সর্বাধিক বেতন পাবেন get আপনি যদি নবম সর্বনিম্ন বেতন পেতে চান তবে আপনার প্রশ্নের মধ্যে এএসসি দ্বারা DESC প্রতিস্থাপন করতে হবে। নবম সর্বোচ্চ বেতন


4
প্রশ্নটি এসকিউএল-সার্ভার নয় মাইএসকিউএল সম্পর্কিত।
বম্মি

6

পদ্ধতি 1:

SELECT TOP 1 salary FROM (
SELECT TOP 3 salary 
 FROM employees 
  ORDER BY salary DESC) AS emp 
 ORDER BY salary ASC

পদ্ধতি 2:

  Select EmpName,salary from
  (
    select EmpName,salary ,Row_Number() over(order by salary desc) as rowid      
     from EmpTbl)
   as a where rowid=3

পদ্ধতি 1 বাছাই করা যেতে পারে: শীর্ষ 1 টি স্যালারি থেকে নির্বাচন করুন (কর্মচারী থেকে শীর্ষ 3 স্যালারি নির্বাচন করুন) * কারণ- কারণ ডিফল্টরূপে তার আরোহী ক্রম
আশীষ অগ্রবাল ইয়দলি

5

২০০৮-এ আমরা ব্যবহার করতে পারি এমন কোনও সম্পর্ক ছাড়াই র‌্যাঙ্ক পেতে আমরা ROW_NUMBER () ওভার (এমপসালারি ডিইএসসি বাই অর্ডার) ব্যবহার করতে পারি।

উদাহরণস্বরূপ আমরা এইভাবে 8 তম সর্বোচ্চ পেতে পারি বা @N কে অন্য কোনও কিছুতে পরিবর্তন করতে পারি বা যদি আপনি চান তবে কোনও ফাংশনে এটি প্যারামিটার হিসাবে ব্যবহার করতে পারেন।

DECLARE @N INT = 8;
WITH rankedSalaries AS
(
SELECT
EmpID
,EmpName
,EmpSalary,
,RN = ROW_NUMBER() OVER (ORDER BY EmpSalary DESC)
FROM salary
)
SELECT
EmpID
,EmpName
,EmpSalary
FROM rankedSalaries
WHERE RN = @N;

এসকিউএল সার্ভারে 2012 আপনি সম্ভবত জানেন যে এটি আরও স্বজ্ঞাতভাবে LAG () ব্যবহার করে সম্পাদিত হয়।




3

যে কোনও এসকিউএল সাক্ষাত্কারে এটি অন্যতম জনপ্রিয় প্রশ্ন। আমি একটি কলামের নবম সর্বোচ্চ মান খুঁজে বের করতে বিভিন্ন প্রশ্ন লিখতে চলেছি।

আমি নীচের স্ক্রিপ্টটি চালিয়ে "Emloyee" নামে একটি সারণী তৈরি করেছি।

CREATE TABLE Employee([Eid] [float] NULL,[Ename] [nvarchar](255) NULL,[Basic_Sal] [float] NULL)

এখন আমি এই সারণিতে 8 টি সারি সন্নিবেশ করতে যাচ্ছি নীচে সন্নিবেশ বিবৃতিটি চালিয়ে।

insert into Employee values(1,'Neeraj',45000)
insert into Employee values(2,'Ankit',5000)
insert into Employee values(3,'Akshay',6000)
insert into Employee values(4,'Ramesh',7600)
insert into Employee values(5,'Vikas',4000)
insert into Employee values(7,'Neha',8500)
insert into Employee values(8,'Shivika',4500)
insert into Employee values(9,'Tarun',9500)

এখন আমরা উপরের সারণী থেকে বিভিন্ন কোয়েরি ব্যবহার করে তৃতীয় সর্বোচ্চ বেসিক_সালটি সন্ধান করব। আমি ম্যানেজমেন্ট স্টুডিওতে নীচের ক্যোয়ারী চালিয়েছি এবং ফলাফলটি নীচে রয়েছে।

select * from Employee order by Basic_Sal desc

আমরা উপরের চিত্রটিতে দেখতে পাচ্ছি যে তৃতীয় সর্বোচ্চ বেসিক বেতন 8500 হবে I আমি একইভাবে কাজ করার 3 টি ভিন্ন পদ্ধতিতে লিখছি। নীচে উল্লিখিত তিনটি ক্যোয়ারী চালিয়ে আমরা একই ফলস্বরূপ অর্থাৎ 8500 পেয়ে যাব।

প্রথম উপায়: - সারি নম্বর ফাংশন ব্যবহার করে

select Ename,Basic_sal
from(
            select Ename,Basic_Sal,ROW_NUMBER() over (order by Basic_Sal desc) as rowid from Employee
      )A
where rowid=2

3
Select TOP 1 Salary as '3rd Highest Salary' from (SELECT DISTINCT TOP 3 Salary from Employee ORDER BY Salary DESC) a ORDER BY Salary ASC;

আমি তৃতীয় সর্বোচ্চ বেতন প্রদর্শন করছি



3

- সর্বোচ্চ বেতন

select * 
from (select lstName, salary, row_number() over( order by salary desc) as rn 
      from employee) tmp
where rn = 2

- (নবম -১) সর্বোচ্চ বেতন

select * 
from employee e1
where 1 = (select count(distinct salary)  
           from employee e2
           where e2.Salary > e1.Salary )

3

অনুকূলিতকরণের উপায়: উপক্রমের পরিবর্তে কেবল সীমা ব্যবহার করুন।

select distinct salary from employee order by salary desc limit nth, 1;

এখানে সীমাবদ্ধতা দেখুন http://www.mysqltutorial.org/mysql-limit.aspx


হ্যাঁ! এটি খুব সহজ এবং পরিষ্কার সমাধান।
অবনীশ অলোক

2

সাবকিউরি দ্বারা:

SELECT salary from
(SELECT rownum ID, EmpSalary salary from
(SELECT DISTINCT EmpSalary from salary_table order by EmpSalary DESC)
where ID = nth)

1

এই প্রশ্নের চেষ্টা করুন

SELECT DISTINCT salary
FROM emp E WHERE
&no =(SELECT COUNT(DISTINCT salary) 
FROM emp WHERE E.salary <= salary)

N = রাখুন যা আপনি চান মান



1

মাইএসকিউএল পরীক্ষিত সমাধান, ধরে নিন এন = 4:

select min(CustomerID) from (SELECT distinct CustomerID FROM Customers order by CustomerID desc LIMIT 4) as A;

আরেকটি উদাহরণ:

select min(country) from (SELECT distinct country FROM Customers order by country desc limit 3);

1

এই কোডটি ব্যবহার করে দেখুন: -

SELECT *
   FROM one one1
   WHERE ( n ) = ( SELECT COUNT( one2.salary )
                   FROM one one2
                   WHERE one2.salary >= one1.salary
                 )

1

একটি টেবিল থেকে নবম সর্বোচ্চ বেতন সন্ধান করুন। ঘন_রঙ্ক () ফাংশনটি ব্যবহার করে এই কাজটি করার একটি উপায়।

এখানে চিত্র বর্ণনা লিখুন

select linkorder from u_links

select max(linkorder) from u_links

select max(linkorder) from u_links where linkorder < (select max(linkorder) from u_links)

select top 1 linkorder 
       from ( select distinct top 2 linkorder from u_links order by linkorder desc) tmp 
order by linkorder asc

DENSE_RANK: ১. DENSE_RANK একটি আদেশিত সারিগুলির একটি গোষ্ঠীতে একটি সারির র‌্যাঙ্ক গণনা করে এবং একটি সংখ্যা হিসাবে র‌্যাঙ্কটি প্রদান করে। র‌্যাঙ্কগুলি ধারাবাহিকভাবে পূর্ণসংখ্যার সাথে শুরু হয় ১. ২. এই ফাংশনটি কোনও সংখ্যক ডেটা টাইপ হিসাবে আর্গুমেন্ট গ্রহণ করে এবং NUMBER প্রদান করে। ৩. অ্যানালিটিক ফাংশন হিসাবে, ডেনস_আরএনके ক্রম_সামগ্রী_এর মান_এক্সপ্রেসের মানগুলির উপর ভিত্তি করে, অন্য সারিগুলির প্রতি শ্রদ্ধার সাথে একটি ক্যোয়ারী থেকে প্রাপ্ত প্রতিটি সারির র‌্যাঙ্ক গণনা করে। ৪. উপরোক্ত ক্যোয়ারিতে কর্মচারী সারণীর সালার ভিত্তিতে পদমর্যাদায় ফিরে আসে টাই ক্ষেত্রে, এটি সমস্ত সারি সমান র‌্যাঙ্ক বরাদ্দ করে।

WITH result AS ( 
     SELECT linkorder ,DENSE_RANK() OVER ( ORDER BY linkorder DESC ) AS  DanseRank 
FROM u_links ) 
SELECT TOP 1 linkorder FROM result WHERE DanseRank = 5

1

এসকিউএল সার্ভার ২০১২+ এ, অফসেট ... FETCH এটি অর্জনের কার্যকর উপায় হবে:

DECLARE @N AS INT;
SET @N = 3;

SELECT
    EmpSalary
FROM
    dbo.Salary
ORDER BY
    EmpSalary DESC
OFFSET (@N-1) ROWS
FETCH NEXT 1 ROWS ONLY

1
select * from employee order by salary desc;

+------+------+------+-----------+
| id   | name | age  | salary    |
+------+------+------+-----------+
|    5 | AJ   |   20 | 100000.00 |
|    4 | Ajay |   25 |  80000.00 |
|    2 | ASM  |   28 |  50000.00 |
|    3 | AM   |   22 |  50000.00 |
|    1 | AJ   |   24 |  30000.00 |
|    6 | Riu  |   20 |  20000.00 |
+------+------+------+-----------+




select distinct salary from employee e1 where (n) = (select count( distinct(salary) ) from employee e2 where e1.salary<=e2.salary);

সংখ্যা হিসাবে n টি নবমতম বেতনের সাথে প্রতিস্থাপন করুন।


0
SELECT TOP 1 salary FROM ( SELECT TOP n salary FROM employees ORDER BY salary DESC Group By salary ) AS emp ORDER BY salary ASC

(যেখানে নবম সর্বাধিক বেতনের জন্য এন)


0

কেবলমাত্র অভ্যন্তরীণ ক্যোয়ারির মানটি পরিবর্তন করুন: উদাহরণস্বরূপ ClassID desc দ্বারা শিক্ষার্থী_আইনফো আদেশ থেকে শীর্ষ (2) * নির্বাচন করুন

উভয় সমস্যার জন্য ব্যবহার করুন:

Select Top (1)* from 
(
 Select Top (1)* from Student_Info order by ClassID desc 
) as wsdwe
order by ClassID 

0

এটিকে জিজ্ঞাসা করতে nth highest bonus, n=10অ্যাডভেঞ্চার ওয়ার্কস ২০১২ ব্যবহার করে বলুন , অনুসরণ করার কোডটি চেষ্টা করুন

USE AdventureWorks2012; 
GO

SELECT * FROM Sales.SalesPerson;
GO

DECLARE @grade INT;
SET @grade = 10;
SELECT MIN(Bonus)
FROM (SELECT TOP (@grade) Bonus FROM (SELECT DISTINCT(Bonus) FROM Sales.SalesPerson) AS a ORDER BY Bonus DESC) AS g
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.