2016-05-05 43 views
0

SQL小提琴正在下降有關MS SQL Server代碼,所以這裏是一個Dropbox的鏈接到包含DDL創建我使用的架構爲.txt:尋求幫助保SQL代碼 - MS SQL Server的

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

爲什麼不直接刪除你的'SELECT'語句中的其他列? –

+0

我會如何去做?當前選定的列爲聚合函數提供變量。我很確定我需要他們。 –

+0

如果您認爲您需要它們,那麼該學習SQL基礎知識了。不,你不需要它們。 – TomTom

回答

2

您可以刪除SELECT語句中的其他列。但是,你需要用骨料代替列ORDER BY子句中:

select top(1) pc.location 
from pc 
group by location 
order by count(pc.location) desc 
從子查詢

ONLINE DEMO

+2

有趣。我不知道你可以結合使用訂單。謝謝! –

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