我有Join表,结果是这样的
IDA IDB QTY
A 3 1
A 4 1
A 5 1
B 3 1
B 4 1
C 3 2
D 3 2
E 3 1
F 4 1
G 3 1
G 4 1
G 5 1
H 3 3
H 4 3
H 5 3
我很困惑如何将具有相同 IDB 和 QTY 条件的 IDA 一起计算。
所以我想要的是:
Combination of IDB - QTY
(3-1, 4-1, 5-1) = 2 from IDA (A and G)
(3-1) = 1 from IDA (E)
(3-2) = 2 from IDA (C and D)
所以基本上我想要计算具有相同 IDB 和 QTY 组合的 IDA。我应该做什么查询?我仍然不明白如何查询这个逻辑,谢谢。
编辑:
我想要的是一个查询的结果,我不会手动制作 IDB-QTY 组合的 Where 条件。 (所以基本上结果不是来自 Where 条件)
最佳答案
您可以使用 group_concat()
函数进行聚合
select group_concat( ida order by ida ) as grouped_letters, count(*) as count
from
(
select ida, count( idb - qty ) as ct, sum( idb - qty ) as sm
from tab
group by ida
) q
group by ct, sm
order by ida;
+---------------+-----+
|grouped_letters|count|
+---------------+-----+
| B | 1 |
| C,D | 2 |
| E | 1 |
| F | 1 |
| A,G | 2 |
| H | 1 |
+---------------+-----+
关于mysql - 统计 ID 如何具有相同的连接组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56659179/