select
sum(case when t.type in ('A') then t.score else 0 end) wgtzb,
sum(case when t.type in ('B','C') then t.score else 0 end) wgthb,
sum(case when t.age > 15 then t.score else 0 end) thick40
from stu t
2、显示百分比
用decode判断,如果有 .52% 的结果,显示为 0.52%
select
decode(TRUNC(m.wgt / m.weight * 100),
replace(round((m.wgt / m.weight) * 100, 2), '.', '0.'),
round((m.wgt/ m.weight) * 100, 2)) || '%'
from xxtable m
select sum(case when t.type in ('A') then t.score else 0 end) wgtzb,sum(case when t.type in ('B','C') then t.score else 0 end) wgthb,sum(case when t.age > 40 then t.score else 0 end) thick40from stu t
我的sql语句本来就计算好了不同字段的记录数,只需要再统计一下占总记录数的
百分比
即可,也就是在select后加上这段代码:
100 * round( COUNT( * ) / SUM( COUNT( * )) OVER (), 4 ) || '%' percent
这个语句中用到的几个sql函数讲解:
1、ROUND() 函数 :
用于把数值字段舍入为指定的小数位数,即保留几位小数。
round(a,b) a 表示要舍入的字段;b规定要返回的小数位数。
详细说明:SQL ROUND() 函数
SELECT SUM(column_name)
FROM table_name
WHERE column_name BETWEEN lower_value AND upper_value;
其中,column_name为需要
求和
的列名,table_name为表名,lower_value和upper_value为区间的上下限。注意,BETWEEN关键字是包括上下限的,如果不需要包括上下限,可以使用大于或小于号。
例如,求表sales中sales_amount列在2019年1月1日到2019年3月31日之间的总和,可以使用以下语句:
SELECT SUM(sales_amount)
FROM sales
WHERE sales_date BETWEEN '2019-01-01' AND '2019-03-31';
小跟班在这里:
国家及地区MySQL数据
Wayne.A:
XSSFCellStyle 设置单元格为数值类型
别过来,你胖到我了_:
创建线程的几种方式
weixin_44124592: