2016-02-29 4 views
1

Я не знаком с SQL и получаю синтаксическую ошибку для этого запроса. Я подозреваю, что я могу использовать ключевое слово «AS» неправильно. Может ли кто-нибудь проверить мой синтаксис здесь? Я также попытался использовать [] вместо одиночных кавычек. Спасибо!Синтаксическая ошибка SQL с AS

SELECT m.dname, COUNT(*) AS 'Total Students', AVG(s.age) AS 'Average Age', 
AVG(s.gpa) AS 'Average GPA' 
FROM student s JOIN major m 
ON s.sid = m.sid 
GROUP BY m.dname 
HAVING COUNT(*) >= 3 

EDIT ****

Ошибка я получаю:

ERROR: syntax error at or near "'Total Students'" LINE 1: SELECT m.dname, COUNT(*) AS 'Total Students', AVG(s.age) AS...^

Использование базы данных PostgreSQL

+2

вы можете поделиться сообщение об ошибке – Lamak

+0

Изменить свой вопрос и (1) обеспечивают фактическая ошибка и (2) пометить вопрос в базе данных, которую вы используете. –

+0

http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS –

ответ

2

В Postgres, для псевдонимов столбцов, содержащих пробелы, используйте двойные кавычки, а не одиночные кавычки:

SELECT m.dname, COUNT(*) AS "Total Students", AVG(s.age) AS "Average Age", 
AVG(s.gpa) AS "Average GPA" 
FROM student s JOIN major m 
ON s.sid = m.sid 
GROUP BY m.dname 
HAVING COUNT(*) >= 3 

- http://www.postgresql.org/docs/9.2/static/sql-select.html#SQL-SELECT-LIST

+0

это предполагает mysql, который (за последнее редактирование тега) ошибочен – Lamak

+0

А, не поймал это обновление. Спасибо, что указали это. – Asaph

+0

Хорошо, я обновил свой ответ с помощью синтаксиса postgres. – Asaph

1

Там нет необходимости в кавычки при использовании AS

Try это

SELECT m.dname, COUNT(*) AS Total_Students, AVG(s.age) AS Average_Age, 
AVG(s.gpa) AS Average_GPA 
FROM student s JOIN major m 
ON s.sid = m.sid 
GROUP BY m.dname 
HAVING COUNT(*) >= 3 
+1

Конечно, но вы удалили пробел из псевдонима таблицы. Ваше решение не будет работать, если OP хочет сохранить пробелы. – Asaph

Смежные вопросы