gpt4 book ai didi

MySQL:计算每行不同值的出现次数

转载 作者:行者123 更新时间:2023-11-30 21:37:40 24 4
gpt4 key购买 nike

根据已经给出的例子,我想再问一下我的问题。 MySQL: Count occurrences of distinct values

示例数据库

id         name
----- ------
1 Mark
2 Mike
3 Paul
4 Mike
5 Mike
6 John
7 Mark

预期结果

name       count
----- -----
Mark 2
Mike 3
Paul 1
Mike 3
Mike 3
John 1
Mark 2

在我看来,“GROUP BY”没有帮助。非常感谢。

最佳答案

最简单的方法是使用 Count()作为Window Functionname 的分区上;但它们仅在 MySQL 8.0.2 and onwards 中可用.

但是,另一种方法是使用 Derived Table 是可能的.在子选择查询(派生表)中,我们将识别每个唯一 name 的计数。现在,我们只需要将它连接到主表,以显示每个名称的计数(同时不对它们进行分组):

SELECT 
t1.name,
dt.total_count
FROM your_table AS t1
JOIN
(
SELECT name,
COUNT(*) AS total_count
FROM your_table
GROUP BY name
) AS dt ON dt.name = t1.name
ORDER BY t1.id

如果 MySQL 8.0.2+ 可用,解决方案将不那么冗长:

SELECT 
name,
COUNT(*) OVER (PARTITION BY name) AS total_count
FROM your_table

关于MySQL:计算每行不同值的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53103519/

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