gpt4 book ai didi

MySQL:按多个字段分组并计数

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

此类问题已在帖子“MySQL: Group By & Count Multiple Fields”中得到解答

编辑:使用的示例查询

选择 actor.id AS actor_id、actors.act_name AS actor_name、details.registration_id AS
从游戏 INNER JOIN Actor 注册 Actors.id = games.actor_id INNER JOIN
详细信息ONdetails.id=games.detail_idWHERE“some cond”GROUP BY注册,actor_id;

但是,就我而言,我无法实现这一目标。我的表数据略有不同(我按注册、actor_id 对表进行分组)。例如:

actor_id | actor_name     | registration
----------------------------------------
189 | ABC | 1234-1234
189 | ABC | 4567-1234
189 | ABC | 7890-4321
169 | DEF | 1111-5643
169 | DEF | 1111-5643

我期望输出如下

actor_id | actor_name     | registration | actor_count
------------------------------------------------------
189 | ABC | 1234-1234 | 3
189 | ABC | 4567-1234 | 3
189 | ABC | 7890-4321 | 3
169 | DEF | 1111-5643 | 2
169 | DEF | 1111-5643 | 2

即 Actor ABC 在表中出现 3 次,DEF 出现 2 次,依此类推
相反,当我使用 count(*) 时,每行中的预期计数为 1
但是,有没有办法实现上述输出?

最佳答案

您可以通过对同一个表执行子查询来实现此目的。也许是这样的:

SELECT
actors.actor_id,
actors.actor_name,
actors.registration,
(
SELECT
COUNT(*)
FROM
actors AS innerActors
WHERE innerActors.actor_id=innerActors.actor_id
) AS actor_count
FROM
actors

关于MySQL:按多个字段分组并计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25786263/

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