GROUPAGE mysql查询的产品是这样的表;
id group amount1 amount2
01 A 500
01 B 340
01 C 190
02 A 270
02 B 440
02 C 110
现在我想对这个结果执行一个新的查询,我的预期输出就是这样;
group amount1 amount2
A 500 270
B 340 440
C 190 110
如果我在查询中将前者作为派生表T,那么如果必须达到这样的结果,整体查询怎么样呢。
我意识到这可能不是一个复杂的查询,但我仍然在追赶mysql语法。请帮忙。
答案 0 :(得分:1)
你可以自我加入吗?没有检查语法,但是这样的话?
SELECT
d1.`group`, d1.`amount1`, d2.`amount2`
FROM derivedtable as d1
JOIN derivedtable as d2 ON d1.`group` = d2.`group`;
您还可以进行GROUP BY?
SELECT `group`, max(`amount1`), max(`amount2`) FROM `derivedtable` GROUP BY `group`;
max aggregate函数将强制第一个非空值。
答案 1 :(得分:0)
虽然描述不太清楚,但我认为你使用像group by with rollup
所以为了达到你想要的结果,你可以使用这样的语法
select
`group`,
sum(amount1),
sum(amount2)
from
( your query that creates derived table) as t
group by
`group`
如果它足够你(实际上是任何聚合函数),你也可以使用MAX或MIN