分和结果

Dividing sum results

我真的很抱歉,因为这可能之前已经回答过,但我找不到解决问题的方法。

在这种情况下,我试图获得同一列中两个总和相除的结果。

| Id | month | budget | sales |
| -- | ----- | ------ | ----- |
| 1  | jan   | 1000   | 800   |
| 2  | jan   | 1000   | 850   |
| 1  | feb   | 1200   | 800   |
| 2  | feb   | 1100   | 850   |

我想要的是获取每个 ID 和月份的完成百分比(例如:在 1 月的 ID 1 的第五列中获取 0.8 或 80%) 我有类似的东西

sel 
id,
month,
sum (daily_budget) as budget,
sum (daily_sales) as sales,
budget/sales over (partition by 1,2) as efectivenes
from sales
group by 1,2

我知道我做错了,但我对 sql 有点陌生,找不到方法:| 谢谢!

我也是 SQL 的新人,但也许我可以提供帮助。试试这个?

sel 
id,
month,
sum (daily_budget) as budget,
sum (daily_sales) as sales,
(sum(daily_budget)/sum(daily_sales)) over (partition by id) as efectivenes
from sales
group by id

应该这样做

CAST(ROUND(SUM(daily_sales) * 100.00 / SUM(daily_budget), 1) AS DECIMAL(5,2)) AS Effectiveness

如果您想更改 table 以便它包含第五列,其中自动计算 budget/sales 的结果,您只需将公式添加到此自动生成的柱子。我要展示的例子是基于 MySQL.

  1. 打开MySQL
  2. 在导航器窗格中找到要修改的table,右键单击它并select“更改Table”

  1. 向您的 table 添加新行。确保 select NN(非空)和 G(生成的列)复选框
  2. 在 Default/Expression 列中,只需输入表达式 budget / sales.

一旦您 运行 您的下一个查询,您应该会看到您的列生成并填充了计算结果。如果您只是想让 SQL 语句从控制台执行相同的操作,它将是这样的:ALTER table YOUR_TABLE_NAME add result FLOAT as (budget / sales);