SQL– category –
-
SQL
SQL DISTINCTで重複排除!使いどころと使いすぎ注意ポイント
SQLでデータを取得していると、「同じ値が何度も表示される」「一覧を作りたいだけなのに重複行が多い」といった状況に直面することがあります。そのようなときに使われる代表的な構文が DISTINCT です。 DISTINCT は非常に便利な一方で、仕組みを正しく理... -
SQL
SQL サブクエリ vs JOIN:どちらを使うべきか?速度・可読性で比較
SQLを書いていると、「この処理はサブクエリで書くべきか、それとも JOIN を使うべきか」と悩む場面は少なくありません。どちらも同じ結果を取得できるケースが多いため、何となく慣れている書き方を選んでしまう方も多いのではないでしょうか。 しかし、... -
SQL
SELECT文が遅いときにチェックすべきポイント10選
データベースを利用したシステムでは、SELECT文の実行速度が全体のパフォーマンスに大きく影響します。画面表示が遅い、バッチ処理が終わらない、APIの応答が悪いといった問題の多くは、SELECT文の遅延が原因で発生します。 本記事では、SELECT文が遅いと... -
SQL
SQL:INDEXが効かない理由 – LIKE検索・関数使用・暗黙的変換に注意
SQLをチューニングする際、「INDEXを作成したのに処理が遅い」「想定通りにINDEXが使われていない」と感じた経験は多いのではないでしょうか。この問題は、単純にINDEXが不足しているのではなく、SQLの書き方そのものが原因であるケースが非常に多く見られ... -
SQL
SQL:全角・半角スペースを削除したい時は REPLACE を使えば解決
SQLで文字列を扱っていると、「見た目は同じなのに一致しない」「不要な空白が原因で検索や比較がうまくいかない」といった問題に直面することがあります。特に、日本語データを扱う場合は、半角スペースと全角スペースが混在しやすく、意図しない不具合の... -
SQL
SQL:グループ内で最大値の行を取得したい時の書き方
SQLを使用してデータを集計していると、「グループごとに最大値を持つ行そのものを取得したい」という場面は非常に多くあります。 例えば、以下のような要件です。 部署ごとに最も給与が高い社員の行を取得したい 商品ごとに最新の更新日時のレコードを取... -
SQL
SQL:前の行の値、次の行の値を取得したい時は
SQLで集計や分析をしていると、 「1つ前の行の値と比較したい」 「次の行の値を参照したい」 「前回との差分を出したい」 といったケースは非常によくあります。 このようなときに使うのが、ウィンドウ関数(分析関数)のLAG と LEAD です。 この記事では... -
SQL
SQL:切り捨て・切り上げをしたい時の TRUNC / CEIL
SQLで数値や日付を扱っていると、「小数点以下を切り捨てたい」「必ず切り上げたい」といった場面は頻繁にあります。そのような時に使う代表的な関数が TRUNC と CEIL です。 本記事では、それぞれの役割・違い・具体的な使用例を、数値と日付の両方でわか... -
SQL
SQL:構成比を出したい時に使う RATIO_TO_REPORT
SQLで売上構成比・割合・比率を求めたい場面はよくあります。そんなときに便利なのが RATIO_TO_REPORT 関数です。 この記事では、 RATIO_TO_REPORT とは何か 基本的な使い方 よくある使用例(売上構成比) 注意点・代替手段 をわかりやすく解説します。 RA... -
SQL
SQL 0除算エラー を防ぐ方法 | NULLIFで安全に割り算する書き方)
SQL で 割り算(除算) を行う際、分母が 0 になると 0除算エラー が発生します。 特に、 集計結果 売上 ÷ 件数 比率・平均値計算 などでは、実務で頻繁に遭遇するトラブルです。 この記事では、NULLIF を使って安全に0除算を回避する方法 を中心に解説し...






