access怎样查询分组的最大值?

字段1字段3字段3之计数2008-6-248:20:0010232008-6-248:20:00103242008-6-248:20:0010512008-6-248:2... 字段1 字段3 字段3之计数
2008-6-24 8:20:00 102 3
2008-6-24 8:20:00 103 24
2008-6-24 8:20:00 105 1
2008-6-24 8:21:00 102 20
2008-6-24 8:21:00 103 37
2008-6-24 8:21:00 106 1
我想让access挑出每分钟字段3之计数的最大值和相应的字段3的名称
输出下面结果
字段1 字段3 字段3之计数
2008-6-24 8:20:00 103 24
2008-6-24 8:21:00 103 37

请问设计视图应该怎么设计阿,字段3之计数选了最大值,但字段3应该怎么设计呢?请达人指教!
至三楼,如果我单独运行select max(字段3之计数) from 表 group by 字段1,可以挑出每分钟的最大值,但运行整行语句select * from 表 where 字段3之计数 in (select max(字段3之计数) from 表 group by 字段1)出来的结果还是查询之前的样子,字段3全部列出来了,没有只挑出最大值那项。麻烦再帮忙想想办法!拜托大家!
至四楼,我现在用的就是这个办法,但没有一步到位的省事的办法么?
展开
 我来答
snkm
2008-07-15 · TA获得超过1033个赞
知道小有建树答主
回答量:753
采纳率:0%
帮助的人:574万
展开全部
先查出每分钟最大的值,然后再查出所有等于最大值的记录:

select * from 表 where 字段3之计数 in (select max(字段3之计数) from 表 group by 字段1)

这样应该就可以了

楼主,我建了个表测试了下:
create table tablenew (
column1 datetime,
column3 int,
num3 int
)

insert into tablenew(column1,column3,num3) values('2008-6-24 8:20:00','102','3')
insert into tablenew(column1,column3,num3) values('2008-6-24 8:20:00','103','24')
insert into tablenew(column1,column3,num3) values('2008-6-24 8:20:00','105','1')
insert into tablenew(column1,column3,num3) values('2008-6-24 8:21:00','102','20')
insert into tablenew(column1,column3,num3) values('2008-6-24 8:21:00','103','37')
insert into tablenew(column1,column3,num3) values('2008-6-24 8:21:00','106','1')

select * from tablenew where num3 in (select max(num3) from tablenew group by column1)

结果:
column1 column3 num3
2008-06-24 08:20:00.000 103 24
2008-06-24 08:21:00.000 103 37

完全没问题
你说的全部显示出来了,我想可能是因为NULL的原因,
当in()的括号中有NULL的值时,就会显示所有的值,这时in这个过滤条件就无效了。

还有就是,我上面这样写是有两个条件才能得到正常的结果:
1、最大值不为NULL(有的话要加条件过滤)
2、最大值不能重复(重复的话会列出所有等大的行)

还有问题可发消息给我
兰馨谷
2008-07-15 · TA获得超过149个赞
知道小有建树答主
回答量:361
采纳率:0%
帮助的人:399万
展开全部
select 字段1,字段3,max(字段3之计数) from 表 group by 字段1,字段3

------
哦,你字段3已不一样

SELECT 字段1,
Max(select top 1 字段3 from 表 where 字段1 = 表1.字段1 order by 字段3之计数 desc),
max(字段3之计数)
from 表 as 表1
group by 字段1

是不是有点复杂,但绝对可用 :)

我暂时也想不出更好的方法了
select * from 表 where 字段3之计数 in (select max(字段3之计数) from 表 group by 字段1)
肯定是错误的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9152734da
2008-07-15 · TA获得超过172个赞
知道小有建树答主
回答量:249
采纳率:0%
帮助的人:137万
展开全部
select * from 表 where (字段1,字段3之计数) in (select 字段1,max(字段3之计数) from 表 group by 字段1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大头娃娃26
2008-07-15 · 超过20用户采纳过TA的回答
知道答主
回答量:101
采纳率:0%
帮助的人:57.3万
展开全部
select 字段3,max(字段3之计数) from 表 group by 字段3
将查询的结果生成一个表,
再链接该表和原表,应该就可以得到查询的结果了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阡陌半缘君
2008-07-12 · TA获得超过1125个赞
知道小有建树答主
回答量:283
采纳率:0%
帮助的人:238万
展开全部
select max(字段3之计数) from 表 group by 字段3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式