2017-05-19 3 views
0

私はこれと同様に構成テーブルがあります。SQL - レポート内の複数のグループ分け

ID 
Incident_Name 
Category 
Source 

は、私は特定のソースを持っているカテゴリ別にグループ化されたすべてのインシデントが、その後そのカテゴリの事件の量を表示するレポートを必要とします値。

Category | Amount | Percentage of Total | Source_1 | Source_2 | Source 3 
---------------------------------------------------------------------------- 
Category 1 | 5  | 25%     | 1  | 3  | 2 
Category 2 | 15  | 75%     | 10  | 2  | 3 

私はMySQLを使用していますが、これについてはどうすればいいですか。

グループ化と金額/割合を得ることは罰金が、私は残りの部分をやっていいと思うかどうかはわかりません。

+0

選択リストでは、ソースタイプごとに1つのcase式を使用します。 – jarlh

答えて

1

SELECT Category, COUNT(*) AS Amount, (COUNT(*)/(SELECT COUNT(*) FROM MyTable)) * 100 AS 'Percentage of Total', 
FROM MyTable 
GROUP BY Category; 

何かアドバイスは、私は、これはあなたがやろうとしているものだと思います。

SELECT Category, 
COUNT(*) AS Amount, 
(COUNT(*)/(SELECT COUNT(*) FROM MyTable)) * 100 AS 'Percentage of Total', 
SUM(source=someval1) as Source_1, --this may need a change 
SUM(source=someval2) as Source_2, --this may need a change 
SUM(source=someval3) as Source_3 --this may need a change 
FROM MyTable 
GROUP BY Category; 
関連する問題