gpt4 book ai didi

mysql - MySQL 中的对计数

转载 作者:行者123 更新时间:2023-11-29 23:19:46 26 4
gpt4 key购买 nike

我需要找出一个值存在多少对。

我的 table 有 3 列,例如

+----+----------+------+-----------------+
| id | one | two | three |
+----+----------+------+-----------------+
| 1 | steve | bob | michael |
| 2 | bob | steve| chris |
| 3 | chris | sam | NULL |
| 4 | michael | chris| lea |
| 5 | steve | lea | NULL |
| 6 | susan | chris| steve |
| 7 | lea | steve| bob |

现在我想找到 steve 的配对,包括它们的计数...第 3 列是“可选”(可以包含 null),并且“一”和“二”始终被填充。

结果应如下所示:Steve & Lea 2、Steve & Bob 2、Steve & Chris 3、Steve & Michael 1、Steve & Susan 1 ...

编辑:一个更好的例子(数据方面)是:

+----+--------+--------+--------+--------+
| id | url | color1 | color2 | color3 |
+----+--------+--------+--------+--------+
| 1 | foo.com| red | grey | |
| 2 | a.com | white | red | grey |
| 3 | b.com | black | white | |
| 4 | z.com | white | red | |
| 5 | 123.com| white | grey | black |

颜色 1、2、3 是网站使用的最突出的颜色(至少 2 个,可选 3 个)。结果应该是最常见的颜色组合的列表。希望这个例子更有意义。

最佳答案

不确定我是否正确理解了您的问题,但给出了以下示例数据:

CREATE TABLE t
(`id` int, `one` varchar(7), `two` varchar(5), `three` varchar(7))
;

INSERT INTO t
(`id`, `one`, `two`, `three`)
VALUES
(1, 'steve', 'bob', 'michael'),
(2, 'bob', 'steve', 'chris'),
(3, 'chris', 'sam', NULL),
(4, 'michael', 'chris', 'lea'),
(5, 'steve', 'lea', NULL),
(6, 'susan', 'chris', 'steve'),
(7, 'lea', 'steve', 'bob')
;

我得到这个查询

select
least(a, b) as p1, greatest(a, b) as p2, count(*)
from (
select
one as a, two as b
from
t
where 'steve' in (one, two)
union all
select
one, three
from
t
where 'steve' in (one, three)
union all
select
two, three
from
t
where 'steve' in (two, three)
) sq
group by p1, p2

这个结果:

|      P1 |     P2 | COUNT(*) |
|---------|--------|----------|
| (null) | (null) | 1 |
| bob | steve | 3 |
| chris | steve | 2 |
| lea | steve | 2 |
| michael | steve | 1 |
| steve | susan | 1 |

这是您要找的吗?

关于mysql - MySQL 中的对计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27428162/

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