如何使用自我加入来计算我的平台上有多少人在我当前使用 MySQL 之前在另一家公司工作过?
How to use a self join to get the COUNT of how many people on my platform have worked at another company prior to my current one using MySQL?
我有一个 table 的形式:
id
comp
employment_year
1
ShoesCo
2000
1
FeetOrg
2006
1
SizeEight
2012
2
ShoesCo
2001
2
SizeEight
2004
2
FeetOrg
2007
3
SizeEight
2001
3
ShoesCo
2004
3
FeetOrg
2007
我想统计(获取总数)在 ShoesCo 之前 到 (employment_date
) 工作的人数在 SizeEight 工作。 id
是每个员工的唯一标识。我正在考虑自行加入,但对 SQL.
的经验有限
这个例子的答案应该是 2。
如果 (id,comp)
数据没有重复,则
SELECT COUNT(DISTINCT id)
FROM table t1
JOIN table t2 USING (id)
WHERE t1.comp = 'ShoesCo'
AND t2.comp = 'SizeEight'
AND t1.employment_year < t2.employment_year
我有一个 table 的形式:
id | comp | employment_year |
---|---|---|
1 | ShoesCo | 2000 |
1 | FeetOrg | 2006 |
1 | SizeEight | 2012 |
2 | ShoesCo | 2001 |
2 | SizeEight | 2004 |
2 | FeetOrg | 2007 |
3 | SizeEight | 2001 |
3 | ShoesCo | 2004 |
3 | FeetOrg | 2007 |
我想统计(获取总数)在 ShoesCo 之前 到 (employment_date
) 工作的人数在 SizeEight 工作。 id
是每个员工的唯一标识。我正在考虑自行加入,但对 SQL.
这个例子的答案应该是 2。
如果 (id,comp)
数据没有重复,则
SELECT COUNT(DISTINCT id)
FROM table t1
JOIN table t2 USING (id)
WHERE t1.comp = 'ShoesCo'
AND t2.comp = 'SizeEight'
AND t1.employment_year < t2.employment_year