首页 > 解决方案 > MYSQL 查询错误 - 第 1 部分运行良好 - 第 2 部分没有

问题描述

该问题的讲师是“生成以下两个结果集:

  1. 查询 OCCUPATIONS 中所有名称按字母顺序排列的列表,紧随其后的是每个职业的第一个字母作为括号(即:括在括号中)。例如:AnActorName(A)、ADoctorName(D)、AProfessorName(P) 和 ASingerName(S)。
  2. 查询OCCUPATIONS中每个职业的出现次数。将出现次数按升序排列,输出格式如下: There are a total of [occupation_count] [occupation]s. 其中[occupation_count]为职业在OCCUPATIONS中出现的次数,[occupation]为小写职业名称。如果多个职业具有相同的 [occupation_count],则应按字母顺序排列。

输入格式

OCCUPATIONS 表描述如下

在此处输入图像描述

职业将仅包含以下值之一:医生、教授、歌手或演员

样本输出将是:

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 行的 ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 'SELECT CONCAT('There are a total of ' , COUNT(OCCUPATION), ' Doctors') 附近使用正确的语法

标签: mysqlsql

解决方案


推荐阅读