2016-04-23 76 views
-1

「顯示與每個本科相關專業的號碼,只包括具有專業2和10之間的節目」我需要一列顯示值的行#

SELECT prg_field AS "College", prg_name AS "Number of Majors" 
FROM program 
WHERE prg_type = 'U' 

我的「專業學生數「專欄作爲主要名稱出現,我如何將其更改爲與大學的prg_field專欄相關的值?

回答

0

如果我理解正確,您想要查找每個學院的不同prg_name的編號。如果這是正確的,你可以得到不同的集學院/專業,然後計算每個學院的專業如下:

;WITH distSets as (
SELECT DISTINCT prg_field as 'College', prg_name as 'Number of Majors' 
) 

Select 
    College 
    ,COUNT(*) over (partition by College) as 'Count of Majors' 
From distSets 

有可能是另一種方式,如果你不能使用一個CTE來格式化這個。 希望這有助於。

0
SELECT prg_field AS "College", 
     COUNT(prg_name) AS "Number of Majors" 
FROM program 
WHERE prg_type = 'U' 
GROUP BY prg_field 
HAVING COUNT(prg_name) BETWEEN 2 AND 10; 

如果有重複prg_name當時的使用COUNT(DISTINCT prg_name)代替COUNT(prg_name)頂部和底部。

+0

是的!這工作。我不記得COUNT函數。謝謝! – Deniz

+0

@Deniz如果這個問題或其他答案已經解決了您的問題,那麼您可以接受答案(使用答案旁邊的投票按鈕下方的複選標記)以指示問題已關閉。如果它沒有回答你的問題,那麼你可以發表評論,詳細說明未解決的問題。 – MT0

0

考慮派生表子查詢:

SELECT t1.prg_field AS "College", Count(*) As "Number Of Distinct Majors" 
FROM 
    (SELECT DISTINCT prg_field, prg_name 
    FROM program 
    WHERE prg_type = 'U') t1 
GROUP BY t1.prg_field 
HAVING Count(*) BETWEEN 2 AND 10