如何获取包含带数字的字符串的列的平均值?
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
我有一个 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