2011-02-23 50 views
0

假設MySQL的計數頻率我有兩個表:的一對多鏈接

people 
======= 
id 
name 

jobs 
===== 
id 
jobname 
person_id 

人可能有很多的就業機會。

我想統計人們有多少工作的頻率。因此,例如 10人有0個職位空缺, 15人1個任務, 3人有2個職位, 2人有3個職位

我能夠得到的人均職位數的計數按:

SELECT person.id, count(jobs.id) as jobcount 
FROM jobs 
WHERE person.id = jobs.person_id 
GROUP BY person.id 
ORDER BY trancount 

personid jobcount 
1   1 
2   1 
3   2 
... 

但我堅持總結這些得到一個頻率。

回答

0

你可以將它們分組在一個外部select語句中嗎?

SELECT jobcount, COUNT(peoplecount) FROM (
    SELECT person.id as peoplecount, count(jobs.id) as jobcount 
    FROM jobs 
    WHERE person.id = jobs.person_id 
    GROUP BY person.id 
) AS frequency GROUP BY jobcount 
+0

非常感謝。我不得不添加一個別名派生表,如下所示:FROM( 選擇person.id作爲peoplecount作爲jobcount SELECT jobcount,COUNT(peoplecount),計數(jobs.id)喬布斯 WHERE person.id = jobs.person_id GROUP BY person.id )dummyalias GROUP BY jobcount – Meirion 2011-02-23 23:24:09