目次
導入
SQLの基本のレビュー
コアSQLインタビューの質問の分析
質問:テーブルで2番目に有給の従業員を見つける方法は?
質問:各部門で最も高い給料の従業員を見つけるにはどうすればよいですか?
質問:ウィンドウ関数にSQLを使用する方法は?
使用の例
基本的な使用法:クエリとフィルターデータ
高度な使用法:複雑なクエリと最適化
一般的なエラーとデバッグのヒント
パフォーマンスの最適化とベストプラクティス
要約します
ホームページ データベース SQL SQLインタビューの質問と回答:データエンジニア/アナリストインタビューをエース

SQLインタビューの質問と回答:データエンジニア/アナリストインタビューをエース

Apr 06, 2025 am 12:13 AM

SQLインタビューの質問への回答には、次のものがあります。1。サブクリーリーとソートを使用して2番目に高い給与の従業員を見つけます。 2。各部門でグループ化とサブ征服を使用して、最も給与の多い従業員を見つけます。 3.複雑な分析にウィンドウ関数を使用します。これらのSQL技術とベストプラクティスを習得することで、データエンジニアリングとデータ分析のインタビューで際立っており、実際の仕事で安心します。

導入

データエンジニアリングとデータ分析の分野では、SQL(構造化クエリ言語)は間違いなくコアスキルの1つです。データエンジニアであろうとインタビューの準備をしているデータアナリストであろうと、SQLの習熟度はインタビューで目立つことができるだけでなく、実際の仕事でも安心します。この記事の目的は、SQLスキルを向上させ、慎重に選択された一連のSQLインタビューの質問と回答を通じてインタビューをスムーズに渡すことを目的としています。

この記事を読むことで、次のことができます。

  • 一般的なSQLインタビューの質問とそのソリューションを理解してください
  • いくつかの高度なSQLのヒントとベストプラクティスをマスターします
  • インタビューでSQL能力を実証する方法を学びます

SQLの基本のレビュー

SQLは、リレーショナルデータベースの管理と操作に使用される標準言語です。データのクエリ、挿入、更新、削除のいずれであっても、SQLは有能です。 SQLのいくつかの重要な概念をすばやく確認しましょう:

  • Selectステートメントは、データベーステーブルからデータを照会するために使用されます
  • 結合は、2つ以上のテーブルを組み合わせるために使用されます
  • レコードをフィルタリングするために節を使用する場合
  • グループをグループして集約するために使用されます

これらの基本的な知識は、SQLインタビューの問題を理解し解決する礎石です。

コアSQLインタビューの質問の分析

質問:テーブルで2番目に有給の従業員を見つける方法は?

この質問では、サブクリーリーと並べ替えの理解を調べます。この問題を解決する方法を見てみましょう。

最大(給与)を2番目の最も高いものとして選択します
従業員から
給与<(従業員から最大(給与)を選択);
ログイン後にコピー

このクエリは最初に最高の給与を見つけ、次に残りの給与の中で最も高い給与を見つけます。これは2番目に高い給与です。この方法はシンプルで簡単ですが、テーブルに従業員が1人しかいない場合、またはすべての従業員が同じで支払われている場合、この方法はnullを返すことに注意する必要があります。

質問:各部門で最も高い給料の従業員を見つけるにはどうすればよいですか?

この問題は、グループ化とサブクエリを組み合わせて解決する必要があります。

 e1.name、e1.department、e1.salaryを選択します
従業員E1から
ここでe1.salary =(
    max(e2.salary)を選択します
    従業員E2から
    ここで、e2.department = e1.department
);
ログイン後にコピー

このクエリは、サブクエリを通じて各部門の最大給与を見つけ、メインクエリを一致させて、基準を満たす従業員を見つけます。このアプローチは機能しますが、大量のデータの場合、パフォーマンスに影響を与える可能性があります。

質問:ウィンドウ関数にSQLを使用する方法は?

ウィンドウ関数は、結果セット構造を変更せずにデータの複雑な分析を実行できるSQLの高度な機能です。たとえば、各従業員が部門内でどのようにランク付けされているかを調べます。

名前、部門、給与を選択し、
       rank()over(salaryrankによる部門注文による分割)salaryrankとして
従業員から;
ログイン後にコピー

このクエリでは、部門ごとにグループ化され、給与の降順でランク付けされたRANK()ウィンドウ関数を使用します。ウィンドウ関数は、複雑な分析タスクを扱う場合に非常に役立ちますが、異なるデータベースがウィンドウ機能を異なってサポートする可能性があることに注意する必要があります。

使用の例

基本的な使用法:クエリとフィルターデータ

5,000人以上の給与を持っているすべての従業員を見つけるための簡単な例を見てみましょう。

名前、給与を選択します
従業員から
給与> 5000;
ログイン後にコピー

このクエリは、 SELECT使用方法とWHEREを使用してデータをフィルタリングする場所を示しています。これは非常に基本的ですが、実際の作業では非常に一般的です。

高度な使用法:複雑なクエリと最適化

各部門の上位3つの高い給与を見つける必要があると仮定します。これは、より複雑なクエリです。

 e1.name、e1.department、e1.salaryを選択します
従業員E1から
ここで3>(
    countを選択します(個別のe2.salary)
    従業員E2から
    ここで、e2.Salary> e1.SalaryおよびE1.Department = e2.Department
);
ログイン後にコピー

このクエリは、サブクエリとCOUNT機能を使用して、各部門の上位3人の従業員を見つけます。このアプローチは機能しますが、データのボリュームが高いときにパフォーマンスの問題を引き起こす可能性があります。このクエリを最適化する1つの方法は、ウィンドウ関数を使用することです。

名前、部門、給与を選択します
から (
    名前、部門、給与を選択し、
           dense_rank()over(salaryrankによる部門注文によるパーティション)salaryrankとして
    従業員から
)ランク付け
ここでsalaryrank <= 3;
ログイン後にコピー

この問題は、 DENSE_RANK()ウィンドウ関数を使用してより効率的に解決できます。これは、テーブルを1回だけスキャンする必要があるためです。

一般的なエラーとデバッグのヒント

SQLクエリの一般的なエラーには、構文エラー、ロジックエラー、パフォーマンスの問題が含まれます。一般的なエラーとデバッグのヒントを次に示します。

  • 構文エラー:たとえば、Semicolon Endステートメントの使用を忘れたり、誤ったキーワードを使用したりします。解決策は、SQLステートメントを再確認して、構文が正しいことを確認することです。
  • 論理エラー:たとえば、クエリ条件が誤って書かれているため、誤った結果が返されます。解決策は、クエリの各部分を徐々に検証して、ロジックが正しいことを確認することです。
  • パフォーマンスの問題:たとえば、クエリの実行時間が長すぎます。解決策は、 EXPLAINコマンドを使用してクエリ計画を分析し、ボトルネックを見つけ、最適化することです。

パフォーマンスの最適化とベストプラクティス

実際のアプリケーションでは、SQLクエリを最適化することが非常に重要です。いくつかの最適化のヒントとベストプラクティスは次のとおりです。

  • インデックスの使用:インデックスは、特に大規模なテーブルでクエリパフォーマンスを大幅に改善できます。頻繁にクエリされた列にインデックスを作成してください。
  • **選択しないでください***:必要な列のみを選択します。これにより、データ転送時間と処理時間が短縮できます。
  • Subqueryの代わりにJoinを使用する:場合によっては、Joinを使用することはサブクエリよりも効率的です。
  • ページネーションクエリ:大量のデータを処理する場合、制限とオフセットを使用すると、クエリパフォーマンスが向上します。

たとえば、何百万ものレコードを備えたテーブルがあるとします。クエリパフォーマンスを最適化する方法:

 - インデックスを使用して、従業員のIDX_EMPLOYEE_SALARY(給与)を作成します。

 - 必要な列のみを選択して、名前、給与を選択します
従業員から
給与> 5000;

-subquery select e1.name、e1.department、e1.salaryの代わりに参加する
従業員E1から
参加する (
    マックスサラリーとして部門、最大(給与)を選択します
    従業員から
    グループごと
)E2 ON E1.DEPARTMENT = E2.DEPARTMENTおよびE1.SALARY = E2.MAXSALARY;

 - ページネーションクエリの選択名、給与
従業員から
給与> 5000
給与DESCで注文します
制限10オフセット0。
ログイン後にコピー

これらの最適化手法は、クエリのパフォーマンスを大幅に改善できますが、特定の状況に応じて調整する必要があります。

要約します

この記事を通して、いくつかの一般的なSQLインタビューの質問とそのソリューションを習得する必要があります。 SQLはインタビューの重要なスキルであるだけでなく、データエンジニアリングとデータ分析のコアツールでもあります。練習と学習を続け、SQLスキルを絶えず改善すると、インタビューや実際の仕事でパフォーマンスが向上します。

以上がSQLインタビューの質問と回答:データエンジニア/アナリストインタビューをエースの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SQL DateTimeの使用方法 SQL DateTimeの使用方法 Apr 09, 2025 pm 06:09 PM

DateTimeデータ型は、0001-01-01-01 00:00:00:00:00:00:00:00:00:00:00:00:59:59.999999999:59:59.99999999の範囲の高精度の日付情報を保存するために使用され、内部はdateTime(精度)です。変換機能は機能しますが、精度、範囲、およびタイムゾーンを変換する際に潜在的な問題に注意する必要があります。

SQLステートメントを使用してSQL Serverでテーブルを作成する方法 SQLステートメントを使用してSQL Serverでテーブルを作成する方法 Apr 09, 2025 pm 03:48 PM

SQL ServerでSQLステートメントを使用してテーブルを作成する方法:SQL Server Management Studioを開き、データベースサーバーに接続します。データベースを選択してテーブルを作成します。作成テーブルステートメントを入力して、テーブル名、列名、データ型、制約を指定します。 [実行]ボタンをクリックしてテーブルを作成します。

SQL IFステートメントの使用方法 SQL IFステートメントの使用方法 Apr 09, 2025 pm 06:12 PM

SQLステートメントは、SQLステートメントを条件付きで実行するために使用され、構文は次のようになります。if(条件)then {ステートメント} else {ステートメント} end if;。条件は有効なSQL式である可能性があり、条件が真の場合、then句を実行します。条件が偽の場合は、else句を実行します。ステートメントをネストできる場合、より複雑な条件付きチェックを可能にします。

SQLラウンドフィールドの使用方法 SQLラウンドフィールドの使用方法 Apr 09, 2025 pm 06:06 PM

SQLラウンド()関数は、指定された数字の数を丸めます。次の2つの用途があります。1。num_digits&gt; 0:小数点に丸められています。 2。Num_Digits&lt; 0:整数の場所に丸みを帯びています。

SQLの重複排除と明確な使用方法 SQLの重複排除と明確な使用方法 Apr 09, 2025 pm 06:21 PM

sqlで異なる使用を使用して重複排除するには2つの方法があります。選択した列の一意の値のみが保存され、元のテーブル順序が維持されます。グループ:グループ化キーの一意の値を保持し、テーブルの行を再注文します。

SQL外部キーの制約は何を意味しますか? SQL外部キーの制約は何を意味しますか? Apr 09, 2025 pm 06:03 PM

外部のキーの制約は、データの整合性、一貫性、および参照の整合性を確保するために、テーブルの間に参照関係がある必要があることを指定します。特定の機能には、以下が含まれます。データの整合性:違法データの挿入または更新を防ぐために、メインテーブルに外部キー値が存在する必要があります。データの一貫性:メインテーブルデータが変更されると、外部キーの制約は、関連データを自動的に更新または削除して、同期し続けます。データ参照:表間の関係を確立し、参照の整合性を維持し、関連データの追跡と取得を促進します。

SQLに計算された列を追加する方法 SQLに計算された列を追加する方法 Apr 09, 2025 pm 02:12 PM

SQLに計算された列を追加することは、既存の列を計算して新しい列を作成する方法です。計算列を追加する手順は次のとおりです。計算する必要がある式を決定します。 ALTER TABLEステートメントを使用します。構文は次のとおりです。ALTERTABLE TABLE_NAME column new_column_name as calculation_formula;例:テーブルsales_dataを変更する列のtotal_salesを販売 *数量として追加します。計算された列を追加した後、新しい列には指定された式に従って計算された値が含まれます。利点には、パフォーマンスの改善とクエリの簡素化が含まれます

SQLステートメントで3つのテーブルを接続する方法に関するチュートリアルを書く方法 SQLステートメントで3つのテーブルを接続する方法に関するチュートリアルを書く方法 Apr 09, 2025 pm 02:03 PM

この記事では、SQLステートメントを使用して3つのテーブルに参加する詳細なチュートリアルを紹介し、読者にさまざまなテーブルのデータを効果的に相関させる方法を学習するよう指導します。例と詳細な構文の説明を使用して、この記事では、SQLのテーブルの参加手法を習得して、データベースから関連情報を効率的に取得できるようにします。

See all articles