1

私は2つのテーブルを持っています。

人:

empid(primary key)
firstname
lastname
email

詳細:

Did(primary key)
salary
designation
empid

ここで、給与が3番目に高い従業員のを選択firstnamelastnameますsalary

また、ソリューションを使用したSQLクエリの演習を見つけることができるサイトを提案していただければ幸いです(オンラインインタープリターは必要ありません。SQLServer2008を練習できます)、w3schoolsを完了しました(これはすごかったです)。今すぐ演習が必要です。sql.ex.ruを試しましたが、あまり役に立ちませんでした。

4

4 に答える 4

2
 select firstname, lastname, salary 
 from 
 (
 select 
    employee.*, details.salary,
    row_number() over (order by salary desc) salaryrank
 from 
      employee
 inner join 
      details
           on employee.empid = details.empid
 ) v
 where salaryrank=3

ソリューションに関するSQLの問題については、stackoverflow自体を調べてみませんか?質問を見つけて、どのように答えを得ることができるかを見てください。次に、最も評価の高い回答を確認します

于 2012-08-31T10:13:56.087 に答える
1

次のフィールド値を持つテーブルがあるとします。

ここに画像の説明を入力してください

詳細

ここに画像の説明を入力してください

ここで、3番目に高い給与を検索する場合は、以下のクエリで次の結果セットが得られます。

ここに画像の説明を入力してください

出力:

ここに画像の説明を入力してください

于 2013-07-31T21:18:31.803 に答える
0

答えの下を見つけてください。

select * from empsal e where
3 =(select count(distinct empsal) from empsal where e.empsal<=empsal);

2番目の最高給与が必要な場合は、「3」を「2」に置き換えます。

于 2012-08-31T10:17:13.647 に答える
0
SELECT 
    p.firstname,
    p.lastname, 
    d.salary 
FROM 
    Persons p,
    Details d 
where 
    p.empid=d.empid  
order by 
    d.btID desc 
limit 2,1;
于 2012-08-31T10:27:48.940 に答える