【发布时间】:2020-06-03 04:52:33
【问题描述】:
我有一个带有枚举字段的表。我需要计算该字段的平均值并将其显示为枚举元素之一。
我得到的平均值是这样的:SELECT AVG(val) FROM test; 它工作正常。但随后我需要通过该索引获取枚举值之一。为了获得索引,我使用ROUND。但我不知道下一步该做什么。
有可能吗?
还有其他方法吗?
示例
创建表:
CREATE TABLE test (
id INT AUTO_INCREMENT PRIMARY KEY,
val ENUM('bad', 'good', 'perfect')
);
填表:
INSERT INTO test(val) VALUES('bad'), ('bad'), ('good'), ('bad'), ('perfect'), ('perfect'), ('good');
选择要以某种方式修复的查询:
SELECT AVG(val) average_value_ind, ROUND(AVG(val)) closest_value_ind FROM test;
在本例中,平均值应为good
【问题讨论】:
-
另一种方法?是的;不要使用 ENUM。
-
这张表我不负责也不能改