[英]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.