4
我有我的代理銷售的銷售表,按季度:有沒有更好的方法來做這個連接?
Agent Quarter Sales ---------------------------- 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' ? – 2012-01-27 22:06:57
你有'(代理,季度)'索引嗎? – 2012-01-27 22:13:56
很確定索引是(代理,季度)。使用遊標可以使查詢立即生效。使用我發佈的查詢需要10分鐘。 ??? – AnotherParker 2012-01-27 23:24:37