“显示与每个本科相关专业的号码,只包括具有专业2和10之间的节目”我需要一列显示值的行#
SELECT prg_field AS "College", prg_name AS "Number of Majors"
FROM program
WHERE prg_type = 'U'
我的“专业学生数“专栏作为主要名称出现,我如何将其更改为与大学的prg_field专栏相关的值?
“显示与每个本科相关专业的号码,只包括具有专业2和10之间的节目”我需要一列显示值的行#
SELECT prg_field AS "College", prg_name AS "Number of Majors"
FROM program
WHERE prg_type = 'U'
我的“专业学生数“专栏作为主要名称出现,我如何将其更改为与大学的prg_field专栏相关的值?
如果我理解正确,您想要查找每个学院的不同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来格式化这个。 希望这有助于。
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)
顶部和底部。
考虑派生表子查询:
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
是的!这工作。我不记得COUNT函数。谢谢! – Deniz
@Deniz如果这个问题或其他答案已经解决了您的问题,那么您可以接受答案(使用答案旁边的投票按钮下方的复选标记)以指示问题已关闭。如果它没有回答你的问题,那么你可以发表评论,详细说明未解决的问题。 – MT0