mysql - 将所有列除以另一列。还将所有列除以聚合函数(最小值、最大值、总和、计数等)
问题描述
我猜如果不定义函数,这是不可能的。这个想法是你有一张像
桌子:
----------------
| A | B | Total|
|---|---|------|
| 1 | 2 | 3 |
| 4 | 5 | 9 |
| 6 | 7 | 13 |
----------------
select */Total from table
----------------------------
| A | B | Total |
|-------|-------|----------|
| 0.333 | 0.667 | 1.00 |
| 0.8 | 0.556 | 1.00 |
| 0.462 | 0.538 | 1.00 |
----------------------------
select */(select max(*) from table) from table
----------------------------
| A | B | Total |
|-------|-------|----------|
| 0.167 | 0.286 | 0.231 |
| 0.667 | 0.714 | 0.692 |
| 1.000 | 1.000 | 1.000 |
----------------------------
解决方案
因此,您需要在输出中使用运算符。您可以简单地执行此操作以获得您的第一个示例:
SELECT A/total, B/total, (A+B)/total FROM `table`
您甚至不需要“总计”列:
SELECT A/(A+B), B/(A+B), 1 as total FROM `table`
第二个,如果你想得到平均值,同样的逻辑也适用。
推荐阅读
- php - 如何检索将值存储在php中嵌套数组中的json响应对象
- javascript - 如何在使用 socket.io 发出日期后格式化日期
- typescript - webpack 中的 vue/ts 应用程序显示:无法挂载组件:未定义模板或渲染函数
- ruby - Ruby - 如何在使用 Nokogiri 的 div 之后检索文本
- javascript - 从字符串中取出图像标签并将其放入数组中
- python - 如何替换元组列表的某些字符
- django - Django Admin:如何根据应用显示和隐藏字段?
- typescript - 如何使用 Parcel Bundler 将打字稿文件捆绑到单个 js 文件?
- android - 错误:org.json.JSONException:没有描述值
- ios - 使用 AVAudioEngine 的立体声麦克风直通?