试图获得:奖项总额最高的前20名PI与他们所称的大学一起。
Mysql:SELECT award, pi, org FROM tbl WHERE groupby(award) LIMIT 20
表格:
似乎不喜欢我的小组。这里出了什么问题?
答案 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;