[英]MySQL - divide results of count function into columns derived from a separate column
[英]Divide all columns by another column. Also divide all columns by aggregate function(min, max, sum, count, etc.)
我猜如果不定义函数,这是不可能的。 这个想法是你有一张像
桌子:
----------------
| 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`
第二个,如果你想得到平均值,同样的逻辑也适用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.