我有一个包含以下结构的表
col1 col2 col3 col4 category
300 200 100 20 1
200 100 30 300 2
400 100 100 70 1
100 30 200 100 1
现在我正在尝试计算col1总行数的百分比是< = 100,对于col2,总行数的百分比是< = 50,依此类推,从类别I开始只想选择类别1
所以生成的表应该看起来像
col1(<=100) col2(<=50)
x% x%
我试过这样的事情,但不知道如何为这个
编写子查询SELECT COUNT(*) AS Total, COUNT(value1)* 100 /Total) AS col1(<=100) FROM table1 WHERE Category=1 GROUP BY value1 HAVING value1 <=100
看起来我需要多个选择查询,PLZ帮助
答案 0 :(得分:0)
您可以尝试使用CASE语句,如下所示:
“SELECT SUM(col1&lt; 100 THEN 1 ELSE 0 END)/ COUNT(col1)AS pct_col1, SUM(col2&lt; 50 THEN 1 ELSE 0 END)/ COUNT(col2)AS pct_col2 FROM table1;“
由于 Arani