Sql server 在TSQL中,如何按“订购”;“最常见的”;价值观
例如,使用AdventureWorks,我希望获得所有员工及其经理的列表,其中经理的下属最多。使用GROUP by很容易获得每个经理拥有的报告数量,但我希望在单独的行中获得他们下属的实际列表Sql server 在TSQL中,如何按“订购”;“最常见的”;价值观,sql-server,tsql,Sql Server,Tsql,例如,使用AdventureWorks,我希望获得所有员工及其经理的列表,其中经理的下属最多。使用GROUP by很容易获得每个经理拥有的报告数量,但我希望在单独的行中获得他们下属的实际列表 SELECT Subordinate.LoginID, Subordinate.Title, Manager.LoginID, Manager.Title FROM HumanResources.Employee Subordinate JOIN HumanResources.Employee
SELECT
Subordinate.LoginID, Subordinate.Title, Manager.LoginID, Manager.Title
FROM
HumanResources.Employee Subordinate
JOIN HumanResources.Employee Manager
ON Subordinate.ManagerID = Manager.EmployeeID
ORDER BY
??
假设您至少在SQLServer2005上,您可以使用
ORDER BY COUNT(*) OVER (PARTITION BY Manager.LoginID) DESC
虽然我想
ORDER BY COUNT(*) OVER (PARTITION BY Manager.LoginID) DESC, Manager.LoginID
可能更好的做法是避免将结果行与下属人数相同的经理混淆。有些经理管理经理吗?太好了,正是我想要的。