首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql :将整数值赋值给字符串值,并获得平均值

Mysql :将整数值赋值给字符串值,并获得平均值
EN

Stack Overflow用户
提问于 2013-03-20 13:04:06
回答 3查看 1.1K关注 0票数 4

我正在使用mysql数据库。我有一张名为“反馈”的表格,其中有一个字段howIsTraining,它可能在“优秀、非常好、好、可怜和可怜”的五个值中有一个值。

我想要写一个查询,它将从所有数据中以以下格式给出这个值的平均值

我想给每个值取整数值。

优秀=5非常好=4好=3穷人=2可悲=1

如果我在表中有五张记录

最后给出的结果为3.8

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-20 13:13:54

代码语言:javascript
复制
select avg(case howIsTraining
             when 'Excellent' then 5
             when 'Very Good' then 4
             when 'Good' then 3
             when 'Poor' then 2
             when 'Pathetic' then 1
             else null
           end) as avg_rating
from feedback 

SQLFiddle:http://sqlfiddle.com/#!2/14a06/1

但是您应该考虑一个更好的设计(如Jack所示)。

票数 5
EN

Stack Overflow用户

发布于 2013-03-20 13:10:57

假设您有另一张保存分数的表:

代码语言:javascript
复制
scores
----------+------
term      | value
----------+------
Excellent | 5
Very Good | 4
...

然后就会有这样的查询:

代码语言:javascript
复制
SELECT AVG(scores.value)
FROM feedback
INNER JOIN scores ON term = howIsTraining;
票数 1
EN

Stack Overflow用户

发布于 2013-03-20 13:07:02

如果数据库中的整数列的值为1到5,那么在表示数据时,将数字转换为字符串,这不是更有意义吗?

在极端情况下,添加额外的整数列,并通过更新填充正确的等级值。把grade=1设为hoIsTraing=‘可悲’。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15524356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档