助け合いフォーラム
Oracle Master Silver SQLの問題で単一行演算子と複数行演算子の見分け方で混乱しているのですが、
サブクエリの入れ子の返す行が一つの行なのか、複数の行なのかを見極めることがポイントでしょうか。
お手数お掛けしますがご確認の程お願い致します。
ChatGPTに聞いてみましたー。どうでしょうか。
【私】SQLの問題で単一行演算子と複数行演算子の見分け方を教えて
【ChatGPT】
SQLの演算子は、主に単一行演算子と複数行演算子の2つのカテゴリに分けられます。それぞれの見分け方を以下に説明します。
単一行演算子:
単一行演算子は、一度に1行のデータに対して操作を行う演算子です。主に算術演算子、比較演算子、論理演算子などが含まれます。
・算術演算子: +, -, *, /
・比較演算子: =, <>, !=, >, <, >=, <=
・論理演算子: AND, OR, NOT
・文字列操作: || (文字列の連結), LOWER(), UPPER(), TRIM()
・日付操作: ADD_MONTHS(), NEXT_DAY(), SYSDATE, CURRENT_DATE
複数行演算子:
複数行演算子は、複数の行にまたがるデータに対して操作を行う演算子で、集約関数やウィンドウ関数などが含まれます。
・集約関数: SUM(), COUNT(), AVG(), MIN(), MAX(), GROUP_CONCAT()
・ウィンドウ関数: ROW_NUMBER(), RANK(), DENSE_RANK(), NTILE(), FIRST_VALUE(), LAST_VALUE(), LEAD(), LAG()
単一行演算子と複数行演算子の見分け方は、操作の対象となるデータの範囲に注目することです。単一行演算子は1行のデータに対して働きかけますが、複数行演算子は複数行にまたがるデータに対して働きかけます。
コメント
Oracle Master Silver SQLの問題で単一行演算子と複数行演算子の見分け方で混乱しているのですが、
問題ID:26510 の「参考」に単一行演算子と複数行演算子の表がありますよ。
等号(=)、不等号(<>)を使っているのが単一演算子で、IN,ANY,ALLが複数行演算子です。
コメント
この投稿に対して返信しませんか?
r ren4219
2023/04/13 05:47
ありがとうございます。 操作の対象となるデータの範囲に注目することです。とはサブクエリのことでしょうか。 また、IN()も複数行演算子になるのでしょうか。