gpt4 book ai didi

mysql - 计算MySQL中列中最频繁出现的元素

转载 作者:行者123 更新时间:2023-11-30 23:46:33 25 4
gpt4 key购买 nike

我有以下问题。

我必须列,我希望每个唯一条目的第一列是第二列中出现频率最高的元素。一个例子是:

COL A    COL B
1 a
2 c
2 c
1 a
1 b
2 d

查询应该输出:

Col A    COL B
1 a
2 c

最佳答案

鉴于此示例数据:

CREATE TABLE t
(`a` int, `b` varchar(1))
;

INSERT INTO t
(`a`, `b`)
VALUES
(1, 'a'),
(2, 'c'),
(2, 'c'),
(1, 'a'),
(1, 'b'),
(2, 'd')
;

您首先必须使用如下查询获取每个计数:

SELECT
a, b,
COUNT(*) AS amount
FROM
t
GROUP BY
a, b

然后您可以将此查询用作子查询,以获取特定列拥有最大值的行。手册中有一篇关于此的好文章:The Rows Holding the Group-wise Maximum of a Certain Column

例如选择上述文章中描述的最后一种方法,您的最终查询将是这样的:

SELECT sq1.a, sq1.b FROM
(
SELECT
a, b,
COUNT(*) AS amount
FROM
t
GROUP BY
a, b
) sq1
LEFT JOIN
(
SELECT
a, b,
COUNT(*) AS amount
FROM
t
GROUP BY
a, b
) sq2 ON sq1.a = sq2.a AND sq1.amount < sq2.amount
WHERE sq2.amount IS NULL;

结果是:

+------+------+
| a | b |
+------+------+
| 1 | a |
| 2 | c |
+------+------+

关于mysql - 计算MySQL中列中最频繁出现的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33936291/

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