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