gpt4 book ai didi

mysql - SQL只从一个表连接

转载 作者:行者123 更新时间:2023-11-29 00:49:13 26 4
gpt4 key购买 nike

我在查询设计方面需要一些帮助。我有一个包含很多行的表(它需要在一个表中)。

Table name: 201201
columns = code, batch, value, volume
rows = 301, 2920, 100, 2000
301, 3192, 40, 800
302, 6479, 230, 3100
303, 4930, 20, 50
303, 3920, 60, 95

我怎样才能提取结果以便以这种方式呈现:

code, batches, value, volume
301, 2, 140, 2800
302, 1, 230, 3100
303, 2, 80, 145

我在使用乘法表时已经这样做了,但是当所有行都在同一个表中时无法让它工作。

我设法通过此查询获得批处理计数和 mrdr

SELECT DISTINCT(`201201`.code), count(DISTINCT(z.batch)) as batches
FROM `201201`
LEFT JOIN `201201` AS z ON `201201`.code = z.code
GROUP BY `201201`.code

但后来我卡住了。提前致谢。

新问题!好的,所以在同一张表中我有一个风险列,其中包含每个批处理的 float :

    Table name: 201201
columns = code, batch, value, volume, risk
rows = 301, 2920, 100, 2000, 0.3
301, 3192, 40, 800, 0.2
302, 6479, 230, 3100, 0.8
303, 4930, 20, 50, 0.8
303, 3920, 60, 95, 1

我想要的是将风险乘以每一行的值,然后按代码求和,就像这样。

code, batches, value, volume, risk
301, 2, 140, 2800, 38

38 的来源是 0.3*100 + 0.2*40。代码 302 和 303 相同。

最佳答案

既然无需加入就可以做到这一点,为什么还需要加入?希望这有助于:

SELECT `code`, 
COUNT(`Batch`) as Batches,
SUM(`Value`) as TotalValue,
SUM(`Volume`) as TotalVolume,
SUM(`Value` * `Risk`) as TotalRisk -- I'm not sure if this works
FROM `201201`
GROUP BY `code`

如果上述方法不起作用,请尝试自加入:

SELECT a.`code`, 
COUNT(a.`Batch`) as Batches,
SUM(a.`Value`) as TotalValue,
SUM(a.`Volume`) as TotalVolume,
SUM(b.`SubRisk`) as TotalRisk
FROM `201201` a INNER JOIN
(
SELECT c.`code`, (c.`Value` * c.`Risk`) as SubRisk
FROM `201201` c
) b ON a.`Code` = b.`Code`
GROUP BY `code`

关于mysql - SQL只从一个表连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9240464/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com