[公費教育]Day 25
そして昨日習ったサブクエリの進捗状況です.
複数列SubQuery 関連SubQuery Inline View Ranking (Top-N)
:複数の戻り値を持つサブクエリ
複数のローと同様に、複数のカラムにも複数の戻り値があります.複数の値ではなく、1つのカラムに複数の値を返すだけです.
[構文]複数の列を比較するので、同じで比較可能です. ただし、サブクエリの出力値とメインクエリの入力値は一致する必要があります. プライマリ・クエリの順序も一致する必要があります. 退職者と同じ部門の同じレベルの従業員のリストを印刷してください.
次に、上記の例の退職者を確認するクエリを示します.
次に、検索条件に基づいて複数の列で値を入力します.
次に、含まれる値は、メインクエリ内で条件に従って
:複数行-列または1行のサブクエリ値をプライマリ・クエリとして使用する場合、条件があります.前提:コンピュータは同じカラム値を区別できません. 1行、複数列は1列の値であり、比較可能である. in:複数行、複数行列で返される複数の値のうち1つを検索します.
:主に
この関連クエリーには、従来とは異なる特殊な点があります.
1)外部テーブルから値を抽出します.
2)
このように、関連クエリはプライマリクエリのデータを使用します.
したがって、
上記の例では、サブクエリは、自主クエリの「dept code」とそのテーブルの「dept id」とを比較します.
また、departmentテーブルは、両者が一致する場合にのみ「dept title」を返します.
この意味では、プライマリ・クエリーに関連付けられたクエリーを意味的に上(相互)パイプ・クエリーと呼ぶ.
ただし、関連サブクエリは単独では使用できず、機能は便利ですが、パフォーマンスはよくありません.
事前に選んでおくので、ホームページで出力するたびに確認します.
:fromセクションで主に使用されるサブクエリ
それだけでなく、テーブルのコラムを集めて、仮想のテーブルを作ることもできます.
:上から下への関数
文法を勉強していますが、ソートや他の順序でテーブルに戻る関数です.
使い方は大きく3つあります.
:連合順位が付与され、連合順位が付与されると空白が解消されます.
:共通順位が与えられますが、そのために空の値は消去されません.
:行番号を列に減算するための共通の順序は貼り付けられません.
いっそ
プライマリ・クエリーをインポートし、ランキングの値を使用します.
📝目次
1.複数列サブクエリ
:複数の戻り値を持つサブクエリ
複数のローと同様に、複数のカラムにも複数の戻り値があります.複数の値ではなく、1つのカラムに複数の値を返すだけです.
[構文]
(값 1, 값2) = (select 값1, 값2 from 테이블 where 조건);
(dept_code, job_code) = (select dept_code, job_code from employee where ent_yn='Y)
次に、上記の例の退職者を確認するクエリを示します.
select dept_code, job_code from employee
where ent_yn='Y'; -- 다중열로 출력
ただし、上記のように記入すると、退社者全員のデータが出てきます.次に、検索条件に基づいて複数の列で値を入力します.
select
emp_name, dept_code, job_code, hire_date
from employee
where
(dept_code, job_code) = (select dept_code, job_code from employee where ent_yn='Y')
and emp_name not in ('이태림');
where
セクションには、プライマリ・クエリーで使用される値が含まれます.次に、含まれる値は、メインクエリ内で条件に従って
select
として出力されます.= , in, any, all
:複数行-列または1行のサブクエリ値をプライマリ・クエリとして使用する場合、条件があります.
=(같다)
複数行、複数行列には適用されません.2.関連サブクエリ
:主に
select
セクションのサブクエリselect () from () where () group by () having () order by ()
サブクエリはDQLを構成するすべてのセクションに入ることができます.ここで、select
セクションのクエリーを相互関連クエリーと呼びます.この関連クエリーには、従来とは異なる特殊な点があります.
select
emp_name 직원명,
(select dept_title from department where dept_code = dept_id) 부서명 -- 조건을 걸어서 가져옴.
from employee;
上記の例は、サブクエリが関連クエリとして使用される例です.ここから見ると、二つの特徴があります。
1)外部テーブルから値を抽出します.
2)
dept_code
employeeテーブルのカラムで、サブクエリに使用されます.このように、関連クエリはプライマリクエリのデータを使用します.
したがって、
from
を除いて、サブクエリが最初に実行されます.上記の例では、サブクエリは、自主クエリの「dept code」とそのテーブルの「dept id」とを比較します.
また、departmentテーブルは、両者が一致する場合にのみ「dept title」を返します.
この意味では、プライマリ・クエリーに関連付けられたクエリーを意味的に上(相互)パイプ・クエリーと呼ぶ.
ただし、関連サブクエリは単独では使用できず、機能は便利ですが、パフォーマンスはよくありません.
事前に選んでおくので、ホームページで出力するたびに確認します.
3. inline view
:fromセクションで主に使用されるサブクエリ
from
セクションでは、内部に格納されているテーブルを指定し、データを取得します.それだけでなく、テーブルのコラムを集めて、仮想のテーブルを作ることもできます.
select * from employee;
select * from (select emp_name, salary from employee);
決心さえすれば、joinと一緒に編むこともできます.4. Ranking (Top-N)
:上から下への関数
文法を勉強していますが、ソートや他の順序でテーブルに戻る関数です.
使い方は大きく3つあります.
1)rank()over(order by標準カラム名desc)
:連合順位が付与され、連合順位が付与されると空白が解消されます.
select
emp_name,
salary,
rank() over(order by salary desc) 순위
from
employee;
2)稠密rank()over(orderby標準列名desc)
:共通順位が与えられますが、そのために空の値は消去されません.
select
emp_name,
salary,
dense_rank() over(order by salary desc) 순위
from
employee;
3)row number()over(order by標準カラム名desc)
:行番号を列に減算するための共通の順序は貼り付けられません.
select
emp_name,
salary,
row_number() over(order by salary desc) 순위
from
employee;
また、inline viewとrow number()を併用します.select * from
(select emp_name, salary, row_number() over(order by salary desc) 순위 from employee)
where
순위 between 1 and 5;
1〜5名の例題の中から1〜5万を選ぶのは容易なことではない.いっそ
inline view
で仮想テーブルを作成します.でも、いっそテーブルでランキングプライマリ・クエリーをインポートし、ランキングの値を使用します.
Reference
この問題について([公費教育]Day 25), 我々は、より多くの情報をここで見つけました https://velog.io/@ho_c/국비교육-Day-25テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol