我有一张按季度分类的销售代理销售表格:
找出每个代理人的第一个季度非常容易:
代理人 季度 销售额 ---------------------------- Alex Andersen 2011Q1 358 Alex Andersen 2011Q2 289 Alex Andersen 2011Q3 27 Alex Andersen 2011Q4 2965 Brian Blogg 2010Q3 277 Brian Blogg 2010Q4 123 Brian Blogg 2011Q1 783 Brian Blogg 2011Q2 0 Christy Cliff 2011Q2 777 Christy Cliff 2011Q3 273 Christy Cliff 2011Q4 111 Christy Cliff 2012Q1 901请问如何通过最简单、最有效的查询方式得出每个代理人的最早季度和当季销售额?
找出每个代理人的第一个季度非常容易:
SELECT agent, min(quarter) FROM salestable GROUP BY agent
但这并不包括销售数据,所以我想进行一次连接:
SELECT agent, sales
FROM salestable s1
JOIN
(
SELECT agent AS e, MIN(quarter) AS q
FROM salestable
GROUP by employee
) AS q1 ON q1.e=s1.agent AND q1.mq=s1.quarter
但是这对于我的数据集来说速度太慢了。如果我可以使用游标,它只需要通过一次表格,但是使用查询似乎需要一个连接。是这样吗?
salestable
上有哪些索引? - Michael Fredrickson(Agent, Quarter)
索引吗? - ypercubeᵀᴹ