【SQL】计算每个人的完成率

目录

前提

  • 达梦数据库:
sql 复制代码
select 1/3; # 0
  • 不要求四舍五入

任务的完成率前三名

sql 复制代码
# nick_name 人名
# finishNum 当前这个人的任务完成数 
# total 当前这个人的任务总数
# finishNumRate 当前这个人的完成率

SELECT nick_name
     , SUM(CASE WHEN task_status = 2 THEN 1 ELSE 0 END) as finishNum 
     , COUNT(*) as total
     ,  SUM(CASE WHEN task_status = 2 THEN 1 ELSE 0 END) * 100 / COUNT(*) AS finishNumRate 
from farm_task a left join sys_user b on execute_user_id = user_id
where a.delete_flag = 0 and a.execute_user_id is not null
group by execute_user_id
order by finishNum desc
limit 3

拓展:达梦如何去实现除法有余数

方法1、修改CALC_AS_DECIMAL=1

方法2、select 1/3.0 from dual;

拓展:MySQL 任务的完成率前三名

sql 复制代码
# 四舍五入
SELECT round(完成数量/总数, 2)

# 四舍五入,并保留两位小数
SELECT round(3.149, 2); # 3.15

# 直接保留两位小数
SELECT truncate(3.149,2); # 3.14
相关推荐
王道长服务器 | 亚马逊云17 分钟前
直播站怎么做到“低延迟不掉线”?AWS + 拳头链路的实战组合
服务器·数据库·搜索引擎·云计算·aws
e***09628 分钟前
【MySQL】MySQL库的操作
android·数据库·mysql
wljt30 分钟前
Redis
数据库·redis·缓存
wljt35 分钟前
Redis常用命令
数据库·redis·oracle
Tiger_shl36 分钟前
SqlConnection、SqlCommand 和 SqlDataAdapter
开发语言·数据库·c#
h***93661 小时前
【MySQL数据库】Ubuntu下的mysql
数据库·mysql·ubuntu
正在走向自律2 小时前
豆包编程模型Doubao-Seed-Code深度体验,从零开始构建全栈项目的完整指南
java·服务器·数据库·doubao·claude code·火山方舟
h***8562 小时前
MySQL数据分析
数据库·mysql
倔强的石头_2 小时前
从海量时序数据到无人值守:数据库在新能源集控系统中的架构实践
数据库
合作小小程序员小小店2 小时前
web网页开发,在线%医院诊断管理%系统,基于Idea,html,css,jQuery,java,jsp,ssh,mysql。
java·前端·css·数据库·jdk·html·intellij-idea