繁体   English   中英

在MySql中使用Max()函数返回错误的值

[英]Using Max() function in MySql returns wrong value

我有一个带有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 | max(count)所以我这样做:

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

但是我用第一行人的SN(不是标题最多的真实SN)获得最大数量的计数

我必须使用max()...感谢使用'order by'的建议,但此处不相关

我究竟做错了什么 ?

谢谢 !

我想你想要这样的东西:

SELECT sn
FROM   ab
ORDER BY NumOfPapers DESC
LIMIT 1

之所以只获得第一行的NumOfPapers计数,是因为您还选择了绝对编号。 因此,我认为这将为您提供所需的东西:

select AB.SN, AB.NumOfPapers FROM AB order by AB.NumOfPapers desc limit 1;
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

您正在使用NumOfPapers ,它是serial_number计数

   select AB.SN, max(wrote.serial_number)

       from AB, wrote

我想我明白了:

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)

谢谢大家的帮助,您真的在那儿指导了我!

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

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

(尽管我尚未对此进行测试,可能需要进行一些调整)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM