MYSQL:基于同一张表的条件,不同列中的相同值

标签 mysql count group-by inner-join self-join

我有一个表administ(管理),包含 4 列adm_nrpres_name(总裁姓名)、yearvice_pres(副总裁姓名)。 我需要选择 vice_pres 以及它们在表中出现的次数。

这是我的 SQL

SELECT vice_pres, COUNT(vice_pres)
FROM administ
GROUP BY vice_pres

问题是有一个额外的条件,因为我只想查看曾经担任过总统的副总统的结果(姓名和人数)。因此,同一个表的两列之间存在值比较,其中vice_pres(副总统的姓名)的值需要等于另一行但在同一个表内的pres_name的至少一个值(在他曾经担任过总统)。

我认为将会出现 self 加入的情况,但永远不可能 我想出如何记录这种情况。

提前致谢!

最佳答案

将表与自身连接以仅选择那些担任总统的人

SELECT t.vice_pres, COUNT(t.vice_pres)
FROM administ t join administ p on t.vice_pres=p.pres_name
GROUP BY t.vice_pres

关于MYSQL:基于同一张表的条件,不同列中的相同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32453484/

相关文章:

mysql - 如何使用MySQL将2个不同结构的表合并为1个表?

mysql - 具有相同 GUID 的多个列,获取每个 GUID 的最新列

vim - 无法计算Vim中的匹配数目

php - php 中 if 中只允许管理员执行的代码是否受到保护?

php - 如何在每个 MySQL 字段结果之间放置标记?

mysql - 如何在不编写与子查询相同的查询的情况下在 WHERE 子句中使用实际行数 (COUNT(*))?

SQL查询按年按月统计事件

r - 如何在 dplyr 中提取一个特定组

mysql - 对嵌套 SQL Oracle 查询中的多行值求和

mysql - 如何在 mysql 组中对记录进行排序?