该问题的指导是“生成以下两个结果集:
1.查询OCCUPATIONS中所有名称的字母顺序列表,紧接着每个职业的第一个字母作为括号(即:括在括号中)。例如:AnActorName(A)、ADoctorName(D)、AProfessorName(P)和ASingerName(S)。
1.在OCCUPATIONS中查询每个职业的发生次数。按升序对匹配项进行排序,并按以下格式输出:There are a total of [occupation_count] [occupation]s.
其中[occupation_count]是职业在OCCUPATIONS中出现的次数,[occupation]是小写的职业名称。如果多个职业具有相同的[occupation_count],则应按字母顺序排列。
输入格式
OCCUPATIONS表描述如下
Occupation将仅包含以下值之一:医生、教授、歌手或演员
样本输出将为:
Christeen(P)
Jane(A)
Jenny(D)
Julia(A)
Ketty(P)
Maria(A)
Meera(S)
Priya(S)
Samantha(D)
There are a total of 2 doctors.
There are a total of 2 singers.
There are a total of 3 actors.
There are a total of 3 professors.
这是我代码的开头:
SELECT NAME,
CONCAT('(', LEFT(OCCUPATION,1),')')
FROM OCCUPATIONS
ORDER BY NAME, OCCUPATION DESC
SELECT CONCAT('There are a total of ' , COUNT(OCCUPATION), ' Doctors')
FROM OCCUPATIONS
WHERE OCCUPATION = 'Doctor'
如果我运行代码的第一部分,它运行得很好。但是如果我运行代码的第二部分,我会得到这个错误:
第1行出现错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在'SELECT CONCAT(' There are a total of ',COUNT(OCCUPATION),' Doctors ')附近使用的正确语法
1条答案
按热度按时间esyap4oy1#
对于MS SQL: