Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】The top N customers who accounted for half of the sales that year--SPL Programming Practice

2025年09月11日に「Dev.to」が公開したITニュース「The top N customers who accounted for half of the sales that year--SPL Programming Practice」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

特定の年の総売上の半分を占める「主要顧客」をデータから抽出する方法を学ぶ。顧客ごとの売上を計算し、降順に並べ替える。次に、総売上の半分を算出し、上位顧客から順に売上を累積し、この半分に達するまでの顧客を主要顧客とする手順をSPLで説明する。

ITニュース解説

企業が持続的に成長し、顧客との関係を強化していく上で、自社の売上に最も貢献している「主要顧客」を特定することは不可欠だ。今回の記事では、ある年の総売上高の半分を占める上位の顧客を「主要顧客」と定義し、その顧客リストを特定のデータ処理言語(SPL)を使ってどのように抽出するかを解説する。これはデータ分析の基本的な応用例であり、システムエンジニアを目指す初心者にとっても理解しやすいテーマとなるだろう。

まず、私たちが分析に使うデータは二種類ある。一つは「売上契約記録」で、これにはどの顧客がいつ、いくら購入したかという情報(契約ID、顧客ID、金額、日付)が記録されている。もう一つは「顧客情報」で、これには各顧客の詳細情報(顧客ID、顧客名、地域)が含まれている。私たちの目標は、これらのデータを使って、例えば1998年という特定の年において、全売上高の半分を占める上位の顧客を見つけ出すことだ。

主要顧客を特定するための基本的な考え方は次のようになる。 最初に、対象となる年(この場合は1998年)のすべての売上契約を合計し、その年の総売上額を把握する。次に、個々の顧客が1998年にいくら売上を上げてくれたのかを計算し、その結果を売上高の高い顧客から順に並べ替える。そして、先ほど算出した総売上額のちょうど半分の金額を目標値として設定する。最後に、売上高の高い順に並んだ顧客リストを上から順に見ていき、それぞれの顧客の売上額を足し合わせていく。この累積額が目標値(総売上額の半分)を超えた時点までの顧客が、まさにその年の「主要顧客」となる。

この一連の処理をSPL(Structured Process Language)というデータ処理言語を使って実現する具体的なステップを順に説明する。

最初のステップとして、まず分析に必要なデータ、つまり1998年の「売上契約記録」と「顧客情報」をそれぞれデータベースから読み込む。読み込んだ契約記録には「顧客ID」は含まれているが、顧客の具体的な名前は含まれていない。そこで、次のステップで「顧客情報」テーブルを使って、契約記録の「顧客ID」に対応する「顧客名」を結びつける処理を行う。これはデータベースの「結合(Join)」と呼ばれる基本的な操作で、異なるテーブル間に関連する情報がある場合に、それらを一つにまとめるために用いられる。この結合により、どの契約がどの顧客(具体的な顧客名)によるものなのかを明確に識別できるようになる。

次に、顧客名が紐づけられた売上データを用いて、各顧客が1998年に上げた合計売上額を計算する。もし一人の顧客が年に複数回購入していれば、それらすべての購入金額を合算する必要がある。この処理は「グループ化(Group By)」と「集計(Aggregate)」と呼ばれ、同じ顧客のデータを一つにまとめ、その合計(Sum)を計算する。計算された各顧客の合計売上額は、売上貢献度が高い顧客から順に分析を進めるために、降順(高い順)に並べ替える。この「ソート(Sort)」操作は、後続の累積計算において非常に重要となる。

その後、主要な処理が始まる。まず、1998年全体の総売上額を算出し、その金額のちょうど半分を目標値として設定する。これを仮に「half」と呼ぶ。そして、先ほど売上高の降順でソートされた顧客リストを上から順に見ていく。最初の顧客の売上額を累積売上額として記録し、次の顧客の売上額をその累積額に加算する。この加算を繰り返していき、累積売上額が「half」という目標値を超えるまで処理を続ける。この操作により、全売上の半分に貢献した上位の顧客の範囲が自動的に特定される。このステップが、売上貢献度の高い顧客を効率的に見つけ出すための中心的なロジックとなる。

最後に、前のステップで特定された顧客のリストを取得する。このリストが、まさに1998年の「主要顧客」となる。このリストを得ることで、企業はどの顧客が自社の売上に最も大きく貢献しているかを具体的に把握し、それらの顧客に対するマーケティング戦略やサービス向上策をより効果的に計画できるようになる。

このように、売上データから主要顧客を特定する一連の処理は、データの読み込み、結合、グループ化、集計、ソート、そして条件に基づいた抽出という、データ分析における基本的な操作を組み合わせたものだ。システムエンジニアを目指す上で、このようなビジネス上の要件をどのようにデータ処理として実現するかを理解し、実際にコードとして表現する能力は非常に重要となる。SPLのようなデータ処理に特化したツールは、これらの複雑な分析を比較的直感的かつ効率的に記述することを可能にする。

関連コンテンツ