mysql - 在 SQL 中使用两列获取另一列的计数

标签 mysql

我有一个简单的问题,我不太确定如何搜索(或标题!)。如果这个问题已经被问了一百万次,我深表歉意。对于下表,我如何生成一份报告,详细说明某人曾工作过的公司数量以及有多少人也曾为同一数量的公司工作过?因此,例如,该表应返回:

people, companiesperperson
   1,            1
   2,            2
   1,            3

对于名为个人信息的下表:

id_number     first     last           company
   1             John      Doe            Intel
   2             John      Doe            Microsoft
   3             Phil      Jenkins        Amgen
   4             Phil      Jenkins        Bayer
   5             Phil      Jenkins        Sanofi
   6             Josh      Edwards        Walgreens
   7             Amy       Dill           URS
   8             Amy       Dill           ARCADIS

请告诉我这是否仍然令人困惑,以及我是否可以进一步澄清我想要做什么。

谢谢!

最佳答案

这是对查询的粗略估计,但是

SELECT count as companiesperperson, COUNT(first, last) as people FROM 
(SELECT COUNT(company) as count, first, last FROM personalinfo GROUP BY (first, last)) as a 
GROUP BY count

为了首先在子查询中解释查询,我们在按名称拆分所有行后询问公司的名称和数量

然后在外部查询中,我们按计数拆分所有行,并询问每组中可以找到多少个唯一名称。

我可能留下了一些语法错误,但按功能分组对于理解如何解决这个问题确实至关重要。

关于mysql - 在 SQL 中使用两列获取另一列的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31622861/

相关文章:

mysql - Nodejs异步: return mysql query result in for loop

mysql - 如何动态编辑mysql数据行?

php - 通过php发布sql查询的结果与通过phpmyadmin发布sql查询的结果不同

php - 用PHP更新MYSQl导致空白页

mysql - MariaDB GROUP_CONCAT 只返回一个值

mysql - 员工详细信息未正确显示

php - 'where clause' 中的未知列,而列已存在

mysql - 您是否应该将多个简单查询合并为一个?

mysql - Mysql中NULL和空值的区别

mysql - 如果左表有多个与其他表关联的字段,如何使用左联接?