2016-01-08 2 views
0

Я хочу перечислить идентификатор наиболее распространенного типа почтовой истории в 2013 годуСинтаксическая ошибка в SQL SQL Статуса: 42601

Моего кода для простого подсчета числа, как часто каждый тип приходит правильно:

SELECT COUNT(id) FROM post_history WHERE year = 2013 GROUP BY post_history_type_id ORDER BY COUNT(id) 

Теперь я хочу извлечь максимум и просто показать его идентификатор. Я попытался это таким образом:

SELECT MAX(SELECT COUNT(id) FROM post_history WHERE year = 2013 GROUP BY post_history_type_id ORDER BY COUNT(id);) FROM post_history ; 

Но он говорит следующее сообщение об ошибке:

FEHLER: Syntaxerror at „SELECT“ LINE 7: SELECT MAX(SELECT COUNT(id) FROM post_history WHERE year =... ^

********** Error**********

ERROR: Syntaxerror at „SELECT“ SQL Status:42601 Zeichen:255

Надеется, что вы можете мне помочь :)

+1

попробуйте удалить с запятой (;) в запросе после «ORDER BY COUNT (ID)» – PravinS

+0

еще таких же .. – kellerprogger

+0

вместо использованием MAX из подзапроса, вы можете просто использовать LIMIT 1 – PravinS

ответ

1

Используйте order by и limit:

SELECT post_history_type_id, COUNT(*) 
FROM post_history 
WHERE year = 2013 
GROUP BY post_history_type_id 
ORDER BY COUNT(*) DESC 
LIMIT 1; 
+0

Но я хотел бы использовать MAX(), разве это невозможно в моем случае? – kellerprogger

+0

@kellerprogger. , , Если вы используете подзапрос. –

1

попробовать этот запрос:

SELECT MAX(number_count),post_history_type_id 
FROM 
(
     SELECT count(id) as number_count,post_history_type_id 
     FROM post_history 
     WHERE year = 2013 
     GROUP BY post_history_type_id 
) 
+0

okay thanks, но в этом случае post_history_type_id не хватает в выходе – kellerprogger

+0

Я редактирую свое сообщение ... попробуйте сейчас – rdn87

+0

Я добавил «как» в конце подзапроса, а консоль говорит следующее: ОШИБКА: Столбец «xyz» .post_history_type_id "должен появиться в предложении GROUP BY или использоваться в агрегатной функции – kellerprogger

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