このテーブル構造を考えると:
CREATE TABLE IF NOT EXISTS splits (
id INT AUTO_INCREMENT,
sector_id INT,
type VARCHAR(100),
percentage INT,
PRIMARY KEY (id),
INDEX (type)
) ENGINE MyISAM;
そしてこのデータセット:
INSERT INTO splits (sector_id, type, percentage) VALUES
(1, 'Manager', '50'),
(1, 'Sales Rep', '50'),
(2, 'Manager', '75'),
(2, 'Sales Rep', '25'),
(3, 'Manager', '75'),
(3, 'Sales Rep', '25'),
(4, 'Manager', '100'),
(5, 'Manager', '100'),
(6, 'Manager', '100');
同じ方法で分割されたセクターの量を返すにはどうすればよいですか?
このような:
Split | Number
---------------+-------
50% M / 50% SR | 1
75% M / 25% SR | 2
100% M | 3
つまり、これは、1つのセクター(id 1)の分割比率が50/50、2つのセクターの分割比率が75/25(id 2、3)、3つのセクターの分割比率が100/0(id 4、5)であることを示しています。 、6)。
これがデータベース設定のSQLフィドルです:http ://sqlfiddle.com/#!2 / 6b19f / 1
何を試しましたか?
どこから解決すればいいのかわからないので、解決策を提示できなかったことをお詫び申し上げます。どこかに行ったら、この質問を更新します。
これをすべてデータベース(アプリケーションではなく)で実行したい理由は、自動レポートツールがテーブル/ビュー/クエリをポイントし、フィルタリング、並べ替え、グラフ化などを自動的に適用できるためです。アプリケーションはすべてのデフォルト機能を失います。