MySQL ウィンドウ関数の紹介 MySQL は MySQL 8.0 以降、ウィンドウ関数をサポートしています。この機能は、ほとんどの商用データベースと一部のオープンソース データベースで長い間サポートされており、一部は分析関数とも呼ばれています。 ウィンドウとは何ですか? ウィンドウの概念は非常に重要です。これはレコードのセットとして理解できます。ウィンドウ関数は、特定の条件を満たすレコードのセットに対して実行される特別な関数です。各レコードについて、このウィンドウ内で関数を実行する必要があります。一部の関数では、ウィンドウ サイズはレコードに応じて固定されており、静的ウィンドウです。逆に、一部の関数では、異なるレコードが異なるウィンドウに対応します。この動的に変化するウィンドウは、スライディング ウィンドウと呼ばれます。 ウィンドウ関数と通常の集計関数も混同されやすいです。両者の違いは次のとおりです。 集計関数は複数のレコードを 1 つに集計しますが、ウィンドウ関数は実行する必要があるレコードの数に関係なく、各レコードに対して実行されます。 集計関数はウィンドウ関数でも使用できます。これについては後で例を挙げて説明します。 1. MySQL 5.0 たとえば、営業担当者の売上を計算し、結果を高いものから低いものの順に並べ替え、クエリ結果に売上ランキングを含める必要があります。 1. 営業担当者の売上を計算し、結果を高い順に並べ替える この部分では、group by を直接使用して営業スタッフをグループ化し、集計関数 sum を使用して売上を合計し、order by を使用して売上結果を並べ替えることができます。声明は次のとおりです。 SELECT sales_name, sum( profit ) FROM spm_order GROUP BY sales_name ORDER BY sum( profit ) DESC 2. クエリ結果に売上ランキングを含めるかどうか。 MySQL 5.0 では、新しい列として +1 を自動的に追加できるように、ソートの自動増分変数を定義する必要があります。声明は次のとおりです。 @ランクを 0 に設定します。 選択 A.*、 @rank := @rank + 1 ランク番号 から ( SELECT sales_name, sum( profit ) FROM spm_order GROUP BY sales_name ORDER BY sum( profit ) DESC ) A ここでの := は代入を意味し、ここでの A はサブクエリに別名を付けて簡単に呼び出せるようにするためのものです。 結果は次のとおりです。 2. MySQL 8.0 この問題に対して、MySQL 8.0 では複雑な問題を簡素化するために呼び出すことができる特別なウィンドウ関数があります。 声明は次のとおりです。 選択 営業名、 合計(売上)、 row_number ( ) over ( ORDER BY sum( sales ) DESC ) AS 'rank' から 注文 グループ化 セールス名 結果: ここでは 要約する 上記は、Mysql8.0 のウィンドウ関数を使用してソート問題を解決する方法について紹介したものです。お役に立てば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
<<: Linux で実行可能ファイルを実行するときに「そのようなファイルまたはディレクトリはありません」というプロンプトが表示される場合の解決策
>>: JavaScript offsetParent のケーススタディ
この記事では、例を使用して、Mysql データベースの基本的な SQL ステートメントについて説明し...
Nginx を Web サーバーとして使用する際に、次の問題が発生しました。 1. nginxの起動...
この記事では、MySQL 8.0 のユーザーとロールの管理について例を挙げて説明します。ご参考までに...
公式チュートリアルに従って、インストール パッケージをダウンロードし、[インストール] をクリックし...
1. スタイルオブジェクトスタイル オブジェクトは単一のスタイル宣言を表し、スタイルが適用されている...
序文このコントロールを直接印刷すると下部に透かしが入りますが、公式 Web サイトから購入することで...
B ツリーは一般的なデータ構造です。彼と一緒にB+ツリーがあります。ここで、概念を明確にする必要があ...
前回の記事で、MySQL ステートメントの最適化には限界があると述べました。MySQL ステートメン...
Web プロジェクトを作成しているときに、紹介ビデオが別にある紹介ページに遭遇しました。この短いビデ...
1. 監視計画監視項目を作成する前に、何を監視するのか、どのように監視するのか、監視データをどのよう...
目次1. プロジェクト環境2. プロジェクトの説明3. プロジェクトの手順1. インストール2. 構...
この記事では、ネイティブ JS で実装された均一なモーションを紹介します。その効果は次のとおりです。...
目次1. 数学関数2. 文字列関数3. 日付関数4. 暗号化機能主な MySQL 関数は次のように紹...
1. ポジショニングとは何ですか? CSS の position 属性には、absolute/re...
目次シナリオコードの実装要約:シナリオ最近、ElementUI をベースにしたバックグラウンド管理シ...