0

我有一个带有 SN 和标题的表在我做的第一个查询中:

create or replace view AB as
select wrote.serial_number as SN, count(wrote.serial_number) as NumOfPapers
from wrote
group by wrote.serial_number;

我确实得到了一个带有 SN 的视图和每个 SN 的标题计数,而不是我想获得标题最多的 ROW(最大计数)为:ID | 最大(计数)所以我这样做:

select AB.SN, max(AB.NumOfPapers)
from AB

但我得到了第一行人的 SN 的最大计数(不是拥有最多头衔的真实 SN)

我必须使用 max() ...感谢使用“order by”的建议,但它们在这里不相关

我究竟做错了什么 ?

谢谢 !

4

6 回答 6

1

我想你想要这样的东西:

SELECT sn
FROM   ab
ORDER BY NumOfPapers DESC
LIMIT 1
于 2012-12-31T20:59:04.110 回答
1

您只获得第一行的 NumOfPapers 计数的原因是因为您还选择了 ab.serial 编号。所以,我认为这会给你你正在寻找的东西:

select AB.SN, AB.NumOfPapers FROM AB order by AB.NumOfPapers desc limit 1;
于 2012-12-31T21:04:36.543 回答
0
create or replace view AB as
select wrote.serial_number as SN, count(wrote.serial_number) as NumOfPapers
from wrote
group by wrote.serial_number 
ORDER by NumOfPapers DESC;

select AB.SN, AB.NumOfPapers from AB LIMIT 1
于 2012-12-31T21:02:09.517 回答
0

你正在使用NumOfPapers哪个是计数serial_number

   select AB.SN, max(wrote.serial_number)

       from AB, wrote
于 2012-12-31T21:03:08.503 回答
0

我想我明白了:

create or replace view AB as
select wrote.serial_number as SN, count(wrote.serial_number) as NumOfPapers
from wrote
group by wrote.serial_number;

select AB.SN, AB.NumOfPapers
from AB
where AB.NumOfPapers = (select max(AB.NumOfPapers)
                        from AB)

谢谢大家的帮助,你们真的指导了我!

于 2012-12-31T21:39:31.203 回答
-1

我相信您的第二个查询向您的数据库询问来自 AB 的每个 AB.SN 和 max(AB.NumOfPapers) 您是否尝试过使用 where 语句?

select AB.SN, max(AB.NumOfPapers)
from AB
where AB.NumOfPapers = max(AB.NumOfPapers)

(虽然我还没有测试过,可能需要一些调整)

于 2012-12-31T20:55:44.820 回答