Access查询中按不同列功能选择列
Posted
技术标签:
【中文标题】Access查询中按不同列功能选择列【英文标题】:Select column by different column function in Access query 【发布时间】:2013-08-26 15:24:07 【问题描述】:我在 Access 2010 中有下表。
EQID Breaker Circuit Rating
1 A One 1000
2 A Two 1500
3 A Three 500
4 A Four 1000
5 B One 1500
6 B Two 2000
我想创建一个按断路器分组的查询,并显示最低评级和该评级的相关电路。我了解如何在不显示最低等级电路的情况下执行此操作。
我想要的查询结果是:
EQID Breaker Circuit Rating
1 A Three 500
2 B One 1500
【问题讨论】:
显示您尝试过的查询,我们将一起解决 【参考方案1】:试试这个:
SELECT a.*
FROM table AS a
INNER JOIN (
SELECT Breaker, MIN(Rating) AS min_rating
FROM table
GROUP BY Breaker
) AS b
ON a.Breaker = b.Breaker AND
a.Rating = b.min_rating;
SQLFiddle:http://www.sqlfiddle.com/#!2/ea4fb/2
【讨论】:
完美。谢谢乍得。没想到回复这么快,也没有收到自动回复通知。【参考方案2】:你可以试试下面的:
SELECT t.EQID, t.Breaker, t.Circuit, t.Rating
FROM test t
INNER JOIN
(
SELECT a.Breaker, MIN(a.Rating) AS Rating
FROM test a
GROUP BY Breaker
) AS tmp
ON tmp.Breaker = t.Breaker AND tmp.Rating = t.Rating;
Sql 小提琴演示:http://sqlfiddle.com/#!2/fe796/19
【讨论】:
Access 可能会在此处抱怨“循环引用”:MIN(a.Rating) AS Rating
如果发生这种情况,您可以通过不重新使用字段名称作为别名来消除错误:MIN(a.Rating) AS MinOfRating
HansUp 大获成功。谢谢
感谢 Anda 和 @Hansup 提供信息。它帮助很大。以上是关于Access查询中按不同列功能选择列的主要内容,如果未能解决你的问题,请参考以下文章
Amazon athena 无法读取 S3 Access 日志文件,Athena 选择查询为每一列返回空结果集
如何在 Access 中对表的所有列进行 UNION ALL