- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用PHP与SQL数据库交互
sql表相关列:编号 |产品 ID |数量 |单位成本
我想要实现的目标:当我输入新行时,老板有时会想知道例如最后 10,000 个单位的平均单位成本。
我如何写一些东西来实现这个目标?像这样:
SELECT AVG(unit_cost) FROM records_receiving WHERE CUMULATIVE_SUM(QUANTITY)< '10000';
我尝试过的所有方法最终要么是数量小于 10,000 的一行的结果,要么最终对所有行进行平均,或者什么也得不到。
我尝试过:
SELECT id, total_cost, manual_adjustment, quantity
FROM records_receiving
WHERE product = '".$gotTheMaterials['ID']."'
ORDER BY ID DESC limit 50;
和
SELECT m.id, AVG(m.unit_cost) AS costAvg
FROM records_receiving m
JOIN records_receiving m1 ON m1.id <= m.id
WHERE m.quantity < '".$gotTheMaterials['quantity']."'
AND m.product = '".$gotTheMaterials['ID']."'
GROUP BY m.id
HAVING SUM(m1.quantity) < '".$gotTheMaterials['quantity']."'
ORDER BY ID DESC
LIMIT 1"
最佳答案
您需要分两步完成此操作。
首先编写一个查询来计算单位的运行总计。然后将其用作查询中的子查询,将其过滤到最多 10,000 的运行总计,并计算平均成本。
SELECT AVG(unit_cost)
FROM (<subquery>) AS x
WHERE total_quantity <= 10000
现在我们必须弄清楚如何编写子查询来计算销售的总销量,以便您可以将其过滤到最后 10,000 个单位。
在 MySQL 8.0 中,您可以使用窗口函数来完成此操作,但我还没有学会如何使用它们。在 8.0 之前,您需要使用 session 变量来计算运行总计。
SELECT unit_cost, @total := @total + quantity AS total_quantity
FROM (
SELECT unit_cost, quantity
FROM records_receiving
ORDER BY id DESC
) AS t
CROSS JOIN (SELECT @total := 0) AS vars
把这些放在一起,你会得到:
SELECT AVG(unit_cost) as avg_cost
FROM (
SELECT unit_cost, @total := @total + quantity AS total_quantity
FROM (
SELECT unit_cost, quantity
FROM records_receiving
ORDER BY id DESC
) AS t
CROSS JOIN (SELECT @total := 0) AS vars
) AS x
WHERE total_quantity <= 10000
关于php - 从 my_table 中选择 avg(unit_cost),其中运行总和(数量)< '$someNumber',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57318125/
我正在寻找 Apache Storm 的源代码,我遇到了一些我从未见过的东西:CLOSE_MESSAGE((short)-100) 或 CLOSE_MESSAGE((short)-100 ).为什么要
在我的代码中,我有一个 for 循环,如下所示: for(unsigned int n=10; n > 1; --n) { std::cout 0; n--) { std::cout <<
如何在构造函数示例中传递(something)someNumber:nameOfClass myObject ((something)someNumber);哪种类型的构造函数应接收它。我在考试中看到
我一直习惯于这样做: int num = 12; String text = ""+12; 很长一段时间,但我发现对于大量添加来说,这是一种非常低效的机制。 对于这些情况,我通常会这样做: // th
我在尝试运行 wordcount 程序时遇到从 localhost.localdomain/127.0.0.1 到 localhost.localdomain:55352 的连接拒绝异常。 yarn
在我的开发中,我总是让我的 VARCHAR 列具有字符长度,例如summary VARCHAR (250) 因为我认为“250 个字符应该足以保存摘要。” 然后,当内容管理员告诉我他们当他们写摘要时出
我正在尝试将最低和最高工资与连字符结合起来显示在报告中。我觉得我已经这样做了一百次,但我仍然无法弄清楚为什么我会收到“将数据类型 varchar 转换为数字时出错”的消息,尤其是因为我试图将数字转换为
使用PHP与SQL数据库交互 sql表相关列:编号 |产品 ID |数量 |单位成本 我想要实现的目标:当我输入新行时,老板有时会想知道例如最后 10,000 个单位的平均单位成本。 我如何写一些东西
给定一个矩阵:- k = [1 2 3 ; 4 5 6 ; 7 8 NaN]; 如果我想用 0 替换一个数字,比如 2,我可以使用这个:k(k==2) =
我是一名优秀的程序员,十分优秀!