获得前20个mysql查询错误

时间:2011-04-06 21:53:37

标签: mysql

试图获得:奖项总额最高的前20名PI与他们所称的大学一起。

Mysql:SELECT award, pi, org FROM tbl WHERE groupby(award) LIMIT 20

表格: Table

似乎不喜欢我的小组。这里出了什么问题?

3 个答案:

答案 0 :(得分:0)

你需要分组,继续你要做的事情:

SELECT distinct award, pi, org FROM tbl LIMIT 20; 

答案 1 :(得分:0)

您不能在查询中包含不是聚合列(即计数)或不是分组的一部分的列 - 这应该有效:

SELECT count(*) as ArwardCount, pi
FROM tbl 
GROUP BY pi
ORDER BY ArwardCount desc
LIMIT 0, 20;

答案 2 :(得分:0)

使用

SELECT award, pi, org FROM tbl WHERE groupby(award) LIMIT 20

你会得到SQL Error (1305): FUNCTION xxx.groupby does not exist

您需要以下内容,假设pi是唯一的,并且org在同一个表中(非常规化)

SELECT pi, org, count(award) awardcount
FROM tbl
GROUP BY pi, org
ORDER BY awardcount DESC
LIMIT 20;