2012-06-04 18 views
0

所以我有一個名爲Medics名稱,姓氏,專業的表。專科總人數爲17人,醫生108人。提供一個列表與選擇查詢

Speciality: reumatologie, o.r.l, chirurgie, neurolog etc

我需要提供一個查詢給我以這種格式列表:

reumatologie - 5, o.r.l - 4, chirugie - 10

凡5,4,和10是從表中醫務人員的數量。這更像是在專科復學中說,我們有5名醫生對應這種專業。

我試過這個concantenating,和更多的其他選擇,沒有一個正常工作。我在想也許它會與案件一起工作?如果是,如何?

,工程最終選擇查詢是:

select Speciality, Count(distinct m_id) as NRofMedics from Medics group by Speciality;

+0

它將與'GROUP BY'和'COUNT()' – lanzz

+0

@lanzz一起工作,我說過我已經嘗試過在多個選擇中,你究竟如何使用它們來提供完全像我上面提到的列表?例如,但它給出了一個錯誤:select CONCAT(Specialty,' - ',COUNT(DISTINCT m_id))GROUP BY Specialty; –

+0

group_concat? (這是一個模糊的問題,但是,你可以做一個GROUP並循環遍歷所有行) – ajreal

回答

1

@lanzz是正確的。然而,嘗試下面的東西 -

select Speciality, Count(distinct name) 
from Medics 
group by Speciality 

希望這可以幫助。

+0

根據您的需要進行所需的格式化。 –

+0

在這個命令中,它計算了專業。不過,我需要計算與某個專業相對應的醫務人員數量。更像神經科醫生 - 10名醫生等 –

+0

我想你可以按照這個想法做剩下的事情。 –

1

試試這個:

select Speciality || '-' || count(distinct name) as 'Med with Speciality' 
from Medics group by speciality 
+0

也許我不夠清楚。在結果集中,我應該得到:Speciality1 - NrofDoctorsWithThisSpeciality,在Speciality2下面 - NrOfDoctorsWithThisSpeciality。通過你的命令,我得到了一個結果集,其直線數爲1,1,1,1,1 –

+0

@SAdrian,該列確實指定了醫生......我以爲你正在尋找醫學專業。 – Rahul

+0

這更像@ V. Verma的命令。而不是專業計數,我需要從每個專業計算出來的醫生,我更新它並開展工作。感謝你在這麼短的通知中的答覆,我希望我可以同時提出你的答案。 –