将所有列除以另一列也可以将所有列除以聚合函数(min、max、sum、count等)

epggiuax  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(654)

我猜如果不定义一个函数,这是不可能的。我的想法是你有一张像这样的table
表格:

----------------
| 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   |
----------------------------
pqwbnv8z

pqwbnv8z1#

所以你需要在你的输出上使用操作符。您只需这样做即可获得第一个示例:

SELECT A/total, B/total, (A+B)/total FROM `table`

你甚至不需要“总计”栏:

SELECT A/(A+B), B/(A+B), 1 as total FROM `table`

第二,如果你想得到平均值,同样的逻辑也适用。

相关问题