2011-05-11 13 views
5

AdventureWorks'ü kullanarak, tüm çalışanların ve onların yöneticilerinin bir listesini en üstte en fazla astları olan yöneticilerle almak istiyorum. Her bir yöneticinin bir GROUP BY kullanarak sahip olduğu rapor sayısını elde etmek için yeterince kolay, ancak alt satırların gerçek listesini ayrı satırlarda istiyorum.TSQL'de "en çok meydana gelen" değerlerle nasıl sipariş verilir?

SELECT 
    Subordinate.LoginID, Subordinate.Title, Manager.LoginID, Manager.Title 
FROM 
    HumanResources.Employee Subordinate 
    JOIN HumanResources.Employee Manager 
    ON Subordinate.ManagerID = Manager.EmployeeID 
ORDER BY 
    ?? 
+0

Bazı yöneticiler yöneticileri yönetiyor mu? –

cevap

3

Ben

ORDER BY COUNT(*) OVER (PARTITION BY Manager.LoginID) DESC, Manager.LoginID 

bağladılar sayılarla yöneticileri için sonuç satırlarını karışarak potansiyel önlemek için daha iyi olabilir varsayalım olsa da

ORDER BY COUNT(*) OVER (PARTITION BY Manager.LoginID) DESC 

kullanabilirsiniz en azından SQL Server 2005 olduğunu varsayarsak astlarının

+0

Mükemmel, tam olarak aradığım şey. –

İlgili konular