-1
SELECT date, id, sum(revenue)
FROM table
WHERE date between '2013-01-01' and '2013-01-08'
GROUP BY date, id
HAVING sum(revenue)>1000

収益が 1000 を超える行を返します。

SELECT date, id, sum(revenue)
FROM table
WHERE date between '2013-01-01' and '2013-01-08'
AND id IN (SELECT id FROM table where date between '2013-01-01' and '2013-01-08' GROUP BY id HAVING sum(revenue)>1000)
GROUP BY date, id

必要に応じて、日付期間の合計収益が 1000 を超える ID の行を返します。しかし、このクエリははるかに遅くなります。これを行うより速い方法はありますか?

4

2 に答える 2

1

それは MySQL ではなく、Vertica です ;)

クリス、order byあなたはどのプロジェクションを使用していますCREATE TABLEか???

http://my.vertica.com/docs/6.1.x/HTML/index.htm#14415.htmdatabase designerを 参照してみてください。

于 2013-11-25T05:54:27.813 に答える