どのクラスが最も重複しているかを調べようとしています。データはMySQLに保存され、各学生は、受講するクラスごとにデータベースに完全に個別の行を持っています(私はそれを構成していないので、変更できません)。下の表の簡略版を貼り付けました。実際には約20の異なるコースがあります。
CREATE TABLE classes
(`student_id` int, `class` varchar(13));
INSERT INTO classes
(`student_id`, `class`)
VALUES
(55421, 'algebra'),
(27494, 'algebra'),
(64934, 'algebra'),
(65364, 'algebra'),
(21102, 'algebra'),
(90734, 'algebra'),
(20103, 'algebra'),
(57450, 'gym'),
(76411, 'gym'),
(24918, 'gym'),
(65364, 'gym'),
(55421, 'gym'),
(89607, 'world_history'),
(54522, 'world_history'),
(49581, 'world_history'),
(84155, 'world_history'),
(55421, 'world_history'),
(57450, 'world_history');
最終的には Circos (背景はこちら) を使用したいと考えていますが、重複が最も多い場所と最も少ない場所を理解し、人々に示すことができる方法があれば幸いです。これは私の頭の中ではありませんが、コースごとに 1 つの行と 1 つの列を持ち、異なるクラスが交差する場所にリストされたオーバーラップの数を含む出力テーブルを使用できると考えていました。各コースがそれ自体と交差する場所は、他のカテゴリと重複していない人の数を示すことができます。