sql - SQL将列除以另一个表中的数字
问题描述
我有两张桌子:
total_table =
| Title | Value |
|-------|-------|
| total | 20 |
breakdown_table =
| Title | Value |
|--------|-------|
| total | 20 | (this is the same as the above table)
| type a | 10 |
| type b | 5 |
| type c | 5 |
我想创建一个新表,其中包含两列,breakdown_table
但添加第三列显示细分百分比(100%、50%、25%、25%)。如何在不对分母进行硬编码的情况下做到这一点?
这是我尝试过的一些语法,但它不断给我关于逗号和等值连接的错误。我不想用键连接表,我只想使用total_table
.
data_out = SELECT breakdown_table.*,
breakdown_table.Value / total.Value
FROM breakdown_table, total_table;
解决方案
您可以交叉连接表(正确):
SELECT
b.*,
100.0 * b.Value / t.Value as data_out
FROM breakdown as b cross join total as t;
推荐阅读
- javascript - 如何将一个数组的元素复制到另一个数组
- html - 如何更改 div 的形状并使用 CSS 使段落环绕它?
- c# - 带有 TreeViewItems 的 foreach 循环
- mongodb - 如果字段文本是任何字段文本的子字符串,如何查找记录?
- python - 图像类型错误:OpenCV Python
- jquery - 如何检查 JSON 中是否存在 Property 并且其值也为 true
- dialogflow-es - Dialogflow 中的多语言代理
- linux - *.1.gz 和 *.1posix.gz 文件之间的区别(UNIX 联机帮助页)
- javascript - 可观察订阅函数中的值不正确
- flask - 使用 wtf 在 Flask 中读取上传的文本有多安全