关于MS SQL Server代码,SQL Fiddle目前处于关注状态,因此这里是一个包含DDL的.txt的保管箱链接,用于创建我使用的模式:
https://www.dropbox.com/s/6si4r37449q3ajb/DDL.txt?dl=0
我正在学习考试,我知道这是一种更有效的编码方式,我只是不知道它是什么。
5。找出安装了最多个人计算机的部门。
select top(1) pc.location, count(pc.location) as number_of_comps_in_dept
from pc
group by location
order by number_of_comps_in_dept desc
我上面的代码有效,但是如果我想获得部门名称(在这种情况下标记为位置)怎么办?我无法通过我当前的代码重新调用单个值 - 这对于程序,函数和触发器来说并不友好。
感谢您的帮助。
答案 0 :(得分:2)
您可以删除SELECT
语句中的其他列。但是,您需要将ORDER BY
子句中的列替换为聚合:
select top(1) pc.location
from pc
group by location
order by count(pc.location) desc
答案 1 :(得分:1)
使用子查询的结果仅获取depratment名称
SELECT Dept_with_Max_Computers
FROM
(
select top(1) pc.location Dept_with_Max_Computers, count(pc.location) as number_of_comps_in_dept
from pc
group by location
order by number_of_comps_in_dept desc
) Z