查找具有SQL Server约束的列的百分比

时间:2016-02-23 19:32:59

标签: sql sql-server

所以我在SQL Server中有以下表格格式。我想找到颜色为黑色的动物的百分比。

Type    Color
--------------
Dog      Black  
Cat      Brown  
Dog      Brown  
Cat      Black  
Dog      white  
Dog      Black

换句话说,输出就是这样的。

Dog  black  33%  
Cat  black  16.6%  

如何在单个查询中执行此操作?

2 个答案:

答案 0 :(得分:1)

SELECT [Type] 
     , Colour 
     , CAST( COUNT(*) * 100.00 /(Select COUNT(*) FROM TableName) AS DECIMAL(5,2))
FROM TableName
GROUP BY [Type] , Colour 

答案 1 :(得分:0)

您可以通过对动物类型进行分组,并通过(SELECT COUNT(*) FROM #tt)为该组获取该组的计数来实现此目的。除以动物总数(SELECT* INTO #tt FROM (VALUES('Dog','Black'),('Cat','Brown'),('Dog','Brown'),('Cat','Black'),('Dog','white'),('Dog','Black')) AS t(Type,Color) SELECT Type, color='black', [percentage]=CAST(COUNT(*)*100.0/(SELECT COUNT(*) FROM #tt) AS DECIMAL(28,2)) FROM #tt WHERE color='black' GROUP BY type; DROP TABLE #tt; )。

+------+-------+------------+
| Type | color | percentage |
+------+-------+------------+
| Cat  | black | 16.67      |
| Dog  | black | 33.33      |
+------+-------+------------+

打印出来:

body {
  counter-reset: section;
}

ul li {
  text-decoration: underline;
  list-style: none;
}

ul li::before {
  counter-increment: section;
  content: counter(section) ". ";
}