该提示的灵感来自我们的一位常驻专家对特定帖子的初步回复。 在此帖子中,用户想知道如何计算特定年龄段间隔(例如20-24、25-29等)的测试结果总数(满意/不满意)。建议使用分区功能,随后我收到了自己的答复,似乎对这个鲜为人知的Function产生了一些兴趣。 我决定将其作为技巧,因为尽管它鲜为人知且很少使用,但当您要计算一系列计算范围内某事物发生的次数或想知道是否出现该问题时,它实际上非常方便在计算出的一系列范围内出现一个数字。 分区函数的语法为:
- 分区(编号,开始,停止,间隔)
- 数字-要根据范围评估的整数。
- start-整数,它是数字整体范围的开始。
- 停止-整数,即整数范围的结尾。
- interval-范围元素之间的差异。
- 解释此功能的最佳方法是显示一些测试数据,然后对具有特定参数的数据应用功能。 下面列出了示例数据,SQL语句和后续输出:
[Age] [Testrslt] (Fields in tblTest) 73 Satisfactory 19 Satisfactory 19 Unsatisfactory 20 Satisfactory 24 Unsatisfactory 21 Satisfactory 16 Satisfactory 45 Unsatisfactory 50 Satisfactory 55 Unsatisfactory 75 Satisfactory 80 Unsatisfactory 62 Satisfactory 64 Unsatisfactory 46 Unsatisfactory 47 Unsatisfactory 49 Unsatisfactory 48 Unsatisfactory 56 Unsatisfactory 58 Satisfactory 72 Satisfactory 67 Unsatisfactory 15 Satisfactory 17 Satisfactory 63 Unsatisfactory 66 Unsatisfactory 61 Unsatisfactory 33 Satisfactory 50 Satisfactory 51 Satisfactory 54 Satisfactory 32 Unsatisfactory
SELECT DISTINCTROW [Testrslt], Partition([Age],0,100,5) AS Age_Range, Count([Age]) AS Range_Count FROM tblTest GROUP BY [Testrslt], Partition([Age],0,100,5);
[Testrslt] [Age_Range] [Range_Count] Satisfactory 15: 19 4 Satisfactory 20: 24 2 Satisfactory 30: 34 1 Satisfactory 50: 54 4 Satisfactory 55: 59 1 Satisfactory 60: 64 1 Satisfactory 70: 74 2 Satisfactory 75: 79 1 Unsatisfactory 15: 19 1 Unsatisfactory 20: 24 1 Unsatisfactory 30: 34 1 Unsatisfactory 45: 49 5 Unsatisfactory 55: 59 2 Unsatisfactory 60: 64 3 Unsatisfactory 65: 69 2 Unsatisfactory 80: 84 1
From: https://bytes.com/topic/access/insights/708740-partition-function