2016-01-08 115 views
0

我想列出了最常见的类型后历史的ID在2013年语法错误在SQL SQL状态:42601

我的代码只是计算的数字每种多久出现是正确的:

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

现在我想提取最大值并只显示它的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 bylimit

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

好吧谢谢,但在这种情况下post_history_type_id stil丢失在输出 – kellerprogger

+0

我编辑我的帖子...现在尝试 – rdn87

+0

我在子查询和控制台末尾添加了“as”如下: 错误:列“xyz .post_history_type_id“必须出现在GROUP BY子句中或用于聚合函数中 – kellerprogger