私のクエリの一部は次のようになります。
HAVING date > '2011-04-13 04:28:03'
日付変数にインデックスが付けられていますが、これはクエリに影響しますか?
EXPLAIN EXTENDED はインデックスを使用していないようですが、テストしているデータベースに 4 つの行があるためかどうかはわかりません。
私のクエリ:
SELECT AVG(slen) FROM
(
SELECT date, COUNT(id) as slen
FROM table
WHERE product_id = 2830
GROUP BY id
HAVING date > '2011-04-13 04:28:02'
) as T
異なる日付値を持つ行がいくつかあります。日付が「2011-04-13 04:28:02」を超える ID のグループを選択したい。次に、日付条件なしで、グループに属する行の平均数が必要です。
ちなみに、クエリはそのままではまだ機能しません。
私の他の懸念は、日付 > '2011-04-13 04:28:02' が私の日付列インデックスを使用するかどうかでした。
このデータセットから:
sid datelast product_id
782240551706 2011-04-13 00:51:52 2830
782240551706 2011-04-13 04:05:48 2830
782240551706 2011-04-13 04:28:03 2830
111111111111 2011-04-13 00:50:30 2830
望ましい結果:
ID 782240551706 のグループを選択する必要があり、平均は 3 である必要があります。
次のクエリは、目的の結果を生成します。
SELECT AVG(slen) FROM
(
SELECT date, COUNT(id) as slen
FROM table
WHERE product_id = 2830
GROUP BY id
HAVING **max(date)** > '2011-04-13 04:28:02'
) as T