SQLの世界

ダウンロードSQL面接の質問電子書籍無料

私の以前の記事では、私は異なる複雑なクエリについてのアイデアを与えています。 この記事では、複雑なSQL面接の質問を説明しようとします。 これは例とのインタビューで尋ねることができます。 私は、ユーザーがその実行のアイデアを得るように、クエリをステップで説明しようとします。 インタビューのための次のSQLクエリがありますが、これは非常に重要です。 インタビューのためのこれらのSQLクエリは、新鮮なだけでなく、良い経験を持っている経験豊富な専門家のために重要です。 私はインタビューで個人的に直面したクエリを収集しようとしました:

1。クエリで1〜100個の数字を表示する方法は?

:

レベル別にデュアルコネクトからレベルを選択<=100;

ヒント:ユーザーは階層クエリの概念を知っている必要があります。 階層クエリの概念を取得するにはここをクリック

2.テーブルから重複した行を削除するにはどうすればよいですか?(複雑なSQLインタビューの質問で100%質問)

回答:

最初のステップ:テーブルから重複行を選択する

ヒント:テーブルのmax(rowid)の概念を使用します。 Rowidの概念を取得するにはここをクリックしてください。

学生からrollnoを選択し、ROWIDを選択します<>

(Rollno=b.rollnoの場合、学生bからmax(rowid)を選択します);

ステップ2:重複行を削除する

学生から削除するWHERE ROWID<>

(Rollno=b.rollnoの場合、学生bからmax(rowid)を選択します);

3.重複行の数を見つける方法は? (95%がインタビューのためのSQLクエリで尋ねた)

回答:

Select rollno,count(rollno)from Student

Group by rollno

Having count(rollno))>1

カウントによる順序(rollno)desc;

4.自己結合を使用して従業員テーブルで3番目に高い給与を見つけるにはどうすればよいですか?(90%が複雑なSQLインタビューの質問をしました)

回答:

Select*from Employee A Where3=(Select Count(distinct Salary)from Employee where a.salary<=b.salary;

説明はこちらをクリックしてください。

5.学生テーブルから最大マークと最小マークを一緒に表示するにはどうすればよいですか?

:

学生から最大(マーク)を選択

ユニオン

学生から最小(マーク)を選択;

ヒント:最大マークと最小マークを一緒に表示するには、ユニオンの概念を使用します。 Unionとunion allに関する情報を取得するには、ここをクリックしてください。

6.クエリを使用して次のように表示するには?

*

**

***

回答:

上記の出力を表示するためにデュアルテーブルを使用することはできません。 出力を表示するには、任意のテーブルを使用します。 私は学生テーブルを使用しています。

Lpad(‘*’,ROWNUM,’*’)をStudent WHERE ROWNUMから選択します<4;

7.DD-MON-YYYYテーブルに日付を表示するにはどうすればよいですか?

:

従業員からto_date(Hire_Date,’DD-MON-YYYY’)Date_Formatを選択します;

8.Marks列にStudentテーブルからカンマ区切りの値が含まれている場合。 そのコンマで区切られた値の数を計算する方法は?

学生名 マーク
アミット 30,130,20,4
スクルータ 100,20,30
ソナリ 140,10

次のような出力を表示したい:

学生名 マーク数
アミット 4
スクルータ 3
ソナリ 2

答え:

Select Student_Name,regexp_count(marks,’,’)+As”Marks Count”From Student;

ヒント:実際のシナリオでは、開発者が列のカンマの数を計算する必要がある場合が多く、regexp_count関数が使用されます。

9.Studentテーブルの正確なレプリカであるStudent_1テーブルを作成する方法は?

:

テーブルStudent_1をselect*from Studentとして作成します;

10.Oracleからすべてのユーザーテーブルを削除するクエリとは何ですか?

:すべてのテーブルを削除するには、単純なPLSQLを記述する必要がありますブロック

Begin

for I In

(Select*From Tabs)—Tabsは、ユーザーが異なるユーザー定義テーブル名を

Loop

Execute immediate(‘Drop Table’||i.table_name||’cascade constraints’);

End loop;

End;

11.現在の月の週末の数を取得するには?

答え:

理解のためにクエリを断片化してみましょう、

ステップ1: 内部クエリを実行してみてください

SELECT TRUNC(SYSDATE,’mm’)+LEVEL-1Current_Dt

FROM Dual

CONNECT BY LEVEL<=last_day(SYSDATE)–TRUNC(SYSDATE,’mm’)+LEVEL-1Current_Dt

FROM DUAL

CONNECT BY LEVEL<=last_day(SYSDATE)-TRUNC(SYSDATE,’mm’)+LEVEL-1Current_Dt

‘) +1;

クエリは、現在の日付の最初から最後までのすべての日付を提供します。

ステップ2:週末を数える。

すべての月から、週末を計算する必要があります。 週末とは、その月からの土曜日と日曜日を意味します。 したがって、ここでは、日数を計算するために、その関数のTo_Char関数と’dy’属性を使用する必要があります。 したがって、Where TO_CHAR(Current_Dt,’dy’)IN(‘sat’,’sun’);条件を使用しました。

したがって、最終的なクエリは

12になります。Oracleで前月の最終日を取得するクエリとは何ですか?

:

dualからLAST_DAY(ADD_MONTHS(SYSDATE,-1))を選択します;

13.Oracleで文字列を垂直に表示するにはどうすればよいですか?

:

SELECT SUBSTR(‘AMIET’,LEVEL,1)FROM dual

Connect by level<=length(‘AMIET’,LEVEL,1)’);

出力 :

A

M

I

E

T

14.あなたの名前から繰り返し文字を見つけるためにクエリを書きますか?

:

dualからRepeated_CharacterとしてRegexp_count(‘AmitA’,’A’)を選択します;

15.Departmentwiseとmonthwiseの最大給与を表示するには?

:

Department_No,TO_CHAR(Hire_Date,’mon’)をDepartment_No,TO_CHAR(Hire_Date,’mon’)による従業員グループから月として選択します’);

16.OracleでテーブルのDDLを取得するにはどうすればよいですか?

:DDLを取得するには、dbms_metadataパッケージとそのget_ddlプロシージャを使用する必要があります。,

dbms_metadataを選択します。デュアルからのget_ddl(TABLE,’table_name’);

17.秒を時間形式に変換するには?

:

選択

TO_CHAR(TRUNC(2700/3600),’FM9900′) || ‘:’ ||

TO_CHAR(TRUNC(MOD(2700, 3600)/60),’FM00′) || ‘:’ ||

TO_CHAR(MOD(2700,60),’FM00′)

デュアルから;

ここで、2700は秒です。

:

18.Count関数を使用せずにテーブル内の行数を計算する方法は?

:

Select table_name,num_rows from user_tables where table_name=’Employee’;

ヒント:ユーザーは同じのためにシステムテーブルを使用する必要があります。 したがって、user_tables userを使用すると、テーブル内の行数が取得されます。

19.結合条件を持たない2つの異なるテーブルから共通レコードを取得する方法。

:

Select*from Table1

Intersect

Select*from Table2;

ヒント: 共通レコードを取得するには、Intersectキーワードを使用します。

20.Employeeテーブルから4~7件のレコードを表示します。

:

Select*from(Select rownum as’No_Of_Row’,E.*from Employee E)

where No_Of_Row between4and7;

21.Employeeテーブルの10~15件のレコードを表示します。

:

Select*from(Select rownum as’No_Of_Row’,E.*from Employee E)

where No_Of_Row between10and15;

22.テーブルの最後のレコードを取得するクエリとは何ですか?

:

Select*from Customer where Rowid=select max(Rowid)from Customer;

複雑なSQLインタビューの質問:

上記の記事では、20の最も重要な複雑なSQLインタビューの質問を与えています。複雑なクエリを書く非常に例外的な方法に関するこの記事が好きなことを願っています。 複雑なSQLのインタビューの質問のこの記事は、学生からSQLで作業して喜んでいる従業員に役立ちます。

コメントを残す

メールアドレスが公開されることはありません。