1

列を持つ購入テーブルがあります-item_key、price、recorded_at(datetime)。

どのアイテムでも、いくつかのプロモーション キャンペーンを実施しているため、価格が時々変更されます。例えば; item_key 1 の通常価格は 100 で、1 週間で 80 に値下げし、その後通常価格に戻します。プロモーション価格は時期によって異なる場合があります (次回は 80 ではなく 60 になる可能性があります)。約100点の商品を取り揃えております。

アイテムごとに価格ごとに日数を取得するためのクエリ (mysql) を作成しようとしています。クエリが複雑になりすぎて、結果を返すのに許容範囲を超える時間がかかっています。

これについて何か助けていただければ幸いです。

ありがとう、

4

1 に答える 1

0

「価格ごとのアイテムごとの日数」の意味が完全にはわかりません....これは購入テーブルであるため、各エントリは購入であると思います...これが事実であり、あなたが見たい場合各アイテムと特定の価格の購入があった明確な日数、これはうまくいくはずだと思います:

SELECT item_key, price, COUNT(DISTINCT recorded_at) from table
GROUP BY item_key, price

これは、item_key/price のすべてのペアを取得し、そのペアのセールが何日あったかをカウントする必要があると思います。

于 2012-10-26T01:26:01.140 に答える