Mysql 计算ID如何具有相同的联接组合?
我有一个连接表,结果如下Mysql 计算ID如何具有相同的联接组合?,mysql,sql,Mysql,Sql,我有一个连接表,结果如下 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
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)
所以基本上我想计算IDA的数量,他们有相同的IDB和QTY组合。我该怎么办?我还是不明白该如何质疑这种逻辑,谢谢
编辑:
我想要的是一次查询的结果,我不会手动设置IDB-QTY组合的Where条件。(因此基本上结果不是来自Where条件)您可以使用聚合和
group\u 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 |
+---------------+-----+
不,我不想手动设置条件(3-1,4-1,5-1)我想要的是自动计算组合的所有结果……天哪,你是天才,巴巴罗斯先生。我只想要计数,而不是艾达的名单。。。但该死的,这是如此整洁,更是我所需要的(以积极的方式)。再次谢谢你,对不起。我想在我的代码中尝试实现这个逻辑之后,我仍然有一些问题。。。我能问更多的问题吗?但不是在这里。@doooooof我当然,你可以用barbaros_ozhan@yahoo.comah对不起,我已经解决了!使用concat小组确实帮助了我。