首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据另一列的聚合值选择一个值

根据另一列的聚合值选择一个值
EN

Stack Overflow用户
提问于 2015-10-20 04:32:45
回答 3查看 3.3K关注 0票数 0

我有一个数据集(在本例中是查询),类似于这样:

代码语言:javascript
复制
ZipCode Territory       Date
----------------------------------
12345   Unknown         9/30/2015
12345   Unknown         9/25/2015
12345   Istanbul        9/20/2015
12345   Istanbul        9/10/2015
12345   Unknown         9/5/2015
12345   Istanbul        8/31/2015
12345   Istanbul        8/21/2015
12345   Unknown         8/16/2015
12345   Constantinople  8/11/2015
12345   Constantinople  8/1/2015
12345   Constantinople  7/22/2015
12345   Constantinople  7/12/2015

我想返回每个邮政编码的最大日期和已知的区域名称(每邮政编码一行)。我希望从上一次查询中得到的最终结果将变成如下:

代码语言:javascript
复制
ZipCode Territory   Date
----------------------------------
12345   Istanbul    9/20/2015

我目前最大的努力只让我来到这里:

代码语言:javascript
复制
ZipCode Territory       Date
---------------------------------
12345   Istanbul        9/20/2015
12345   Constantinople  8/11/2015

帮助!这在我的SQL写作能力上是一个巨大的差距。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-20 07:25:35

你需要问两个问题。

检索最大日期的第一个。

代码语言:javascript
复制
SELECT Zipcode, Max([Date]) AS MaxDate FROM <TableName> Group BY Zipcode

让我们将这个查询保存为qryMaxDateForZipCode

第二个查询领土的日期。

代码语言:javascript
复制
SELECT ZipCode, Territory FROM qryMaxDateForZipCode 
INNER JOIN <TableName> ON qryMaxDateForZipCode.MaxDate = <TableName>.[Date]

不过,您可能有两个地区资格的最大日期。那你想做什么?

票数 2
EN

Stack Overflow用户

发布于 2015-10-20 05:00:17

这本质上是一个每组最多的问题。按邮政编码分组数据,以获取每个邮政编码的最新日期。然后将邮政编码-最新的日期对与您的数据匹配:

代码语言:javascript
复制
SELECT YourTable.* 
FROM YourTable 
INNER JOIN (
    SELECT ZipCode, MAX(Date) AS Date_Max
    FROM YourTable
    WHERE Territory <> 'Unknown'
    GROUP BY ZipCode
) AS TempGroup ON
        YourTable.ZipCode = TempGroup.ZipCode 
    AND YourTable.Date = TempGroup.Date_Max

结果(在MS-Access 2007中测试):

代码语言:javascript
复制
ZipCode Territory   Date
----------------------------------
12345   Istanbul    9/20/2015
票数 1
EN

Stack Overflow用户

发布于 2015-10-20 04:43:50

这可能会有帮助:

代码语言:javascript
复制
Select ZipCode, MAX(Territory), Max([Date]) AS [Date]
Group By ZipCode
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33228058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档