所以我在SQL Server中有以下表格格式。我想找到颜色为黑色的动物的百分比。
Type Color
--------------
Dog Black
Cat Brown
Dog Brown
Cat Black
Dog white
Dog Black
换句话说,输出就是这样的。
Dog black 33%
Cat black 16.6%
如何在单个查询中执行此操作?
答案 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) ". ";
}