将特定值组合在一起

时间:2016-03-02 21:03:17

标签: sql ms-access

[library documentUIDsMatchingString:searchString options:nil completionHandler:
 ^(NSString* searchString, NSDictionary<NSString *,NSIndexSet *> * resultSet) {
              for (NSString *UID in resultSet) {
                  NSIndexSet *indexSet = resultSet[UID];
                  NSLog(@"Found the following matches in document %@: %@", UID, indexSet);
              }
 }

所以我做了一个查询,计算单个列中值发生的次数。现在我想将其中的一些组合成一个结果。我想把结果带到中国,欧洲,香港,印度,日本和墨西哥,并将它们组合成一个名为&#34; Foreign&#34;的类别。

SELECT Type, COUNT(Type) AS [Number of Applications]
FROM Applications
GROUP BY Type 

关于如何将这些组合在一起的任何想法?

1 个答案:

答案 0 :(得分:1)

好的方法是设置一个查找表Country,并为IsItForeign设一个字段,其中包含两个值之一Foreign和{{1} }。然后,您可以加入Domestic(或Country,按照您的要求加入)并按Type分组。我不得不猜测你需要这种切片比今天的报告更多,所以你也可以建立它。

糟糕的方法是“硬编码”......就像这样:

IsItForeign

上面的查询并没有让你一直到你想要的摘要,但我不太清楚你想要什么。也许就是这样,这使得非外国国家变得与众不同,并将你们名单上的国家混为一谈:

SELECT 
Type, 
Iif(Type = "China" Or Type = "Europe" Or Type = "Hong Kong" Or Type = "India" Or Type = "Japan" Or Type = "Mexico", "Foreign", "Not Foreign") AS IsItForeign,
COUNT(Type) AS [Number of Applications]
FROM Applications
GROUP BY Type 

无论如何,这为您提供了依据。

除此之外还有许多不好的方法。

HansUp指出,使用SELECT Type, Iif( Type = "China" Or Type = "Europe" Or Type = "Hong Kong" Or Type = "India" Or Type = "Japan" Or Type = "Mexico", "Foreign", [Type]) AS IsItForeign, COUNT(Type) AS [Number of Applications] FROM Applications GROUP BY Type 会更好:

IN()

您必须在SQL View中构建它,但当然您对此感到满意。

我确信使用子选择查询会更好,正如HansUp所建议的那样。这是我的舒适区的一步,但这些天我在SQL Server,我最好扩展我的区域!