我有Access查询,这确实需要时间来执行。现在,我必须通过至少四个查询来获得我想要的结果,这是按组分列的前4个百分比。以下是查询。
示例输出(GroupID的NewColumn的前4个值):
Group1 1.45
Group1 1.00
Group1 0.45
Group1 0.20
Group2 8.20
Group2 4.48
Group2 3.44
Group2 2.00
当我运行Query4时,执行需要一段时间(至少10分钟)。由于累计百分比计算,查询必须返回所有记录。
我在Query3中尝试了HAVING子句,这样当我选择Top 4时,Query4中的行将被最小化,但我无法使其工作。我也尝试在Query2中获得前4个,以便后续查询可以使用更少的行,但查询需要更多的时间来打破执行查询。
我想简化或至少优化查询。
表格结构:
Table1:
ID - Autonumber
GroupID
Tip1
Tip2
Tip3
Tip4
Sample data Table1:
GroupID Tip1 Tip2 Tip3 Tip4
171 1 5 4 8
172 2 7 5 3
173 8 16 10
Table2:
ID - Autonumber
GroupID
Result1
Result2
Result3
Sample data Table2:
GroupID Result1 Result2 Result3
171 1 5 4
172 12 7 5
173 8 6 3
表1和表2使用GroupID
连接答案 0 :(得分:1)
我曾经遇到类似的情况,我不得不通过复杂的自我加入对数据进行排名。在我第一次将数据转储到临时表然后对其运行更新查询之前,它非常缓慢。仍然很慢,但不是那么糟糕。
也许你可以使用临时表而不是一系列连接的查询?然后#1,#2和#3可以是作用于该登台表的更新查询。