如何获取包含带数字的字符串的列的平均值?

How to get the average of a column that contains a string with a number?

我有一个 table,其中包含一个包含名称列表的列和一个级别列表列。级别列的数据类型为字符串。我正在尝试获取我的人员列表的平均级别。所以下面的 table 应该填充平均级别 2.8 ((2+4+2+2+4+3)/6)-> 我希望它显示低于平均级别的整数 - 因此: 'Level 2' 应该是结果。

由于这些是字符串而不是数字,我该如何添加级别?

TABLE一个

Column 1 Column 2
Joey Level 2
Rachel Level 4
Ross Level 2
Pheobe Level 2
Monica Level 4
Chandler Level 3

结果: 2 级

它可能会有所不同,具体取决于您使用的 dbms :

SELECT  AVG(CAST(REGEXP_REPLACE(column2, 'level ', '') as INTEGER))
FROM TABLE

或者如评论中所述,您可以使用“oreplace”:

SELECT  AVG(CAST(OREPLACE(column2, 'level ', '') as INTEGER))
FROM TABLE