【发布时间】:2020-12-05 20:44:41
【问题描述】:
我有ID | Name | Salary,类型分别为Integer | String | Integer。
我需要查询 Salary 列的所有行的 avg,然后再次查询 Salary 列的所有行的 avg,但是如果其中任何一行包含 0,则从这些数字中删除 0,然后计算平均值。
所以如果 Salary 返回 1420, 2006, 500,下一个查询应该返回 142, 26, 5。然后我计算后续不包含 0 的数字的平均值。
我尝试用谷歌搜索我的具体问题,但没有找到任何接近解决方案的东西。我不是在寻找答案,而是朝着正确的方向努力。
我的想法
- 也许我需要将
integer数据类型转换为varchar或字符串,然后从那里删除“0”数字,然后再转换回来? - 也许我需要从第一个表结果创建一个临时表,然后插入它们,只是没有 0?
有什么想法吗?希望我很清楚。谢谢!
示例表数据:
ID | Name | Salary
---+----------+-------
1 | Kathleen | 1420
2 | Bobby | 690
3 | Cat | 500
现在我需要查询上表,但工资行中的 0 已删除
ID | Name | Salary
---+----------+-------
1 | Kathleen | 142
2 | Bobby | 69
3 | Cat | 5
【问题讨论】:
-
为什么要删除零?为什么你会从 2006 年到 26 年?
-
我的问题需要我这样做。
-
让帮助您变得简单且可能 - 向我们展示一些示例表数据和预期结果(格式文本,无图像。)minimal reproducible example
-
101呢,应该是11吧?
-
我会选择“思想 1”。
标签: sql string average aggregate-functions