我的部分查询如下所示:
HAVING date > '2011-04-13 04:28:03'
date变量被索引了,对查询有影响吗?
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
最佳答案
HAVING 与 GROUP BY 结合使用,因此它是一个派生表。我不知道如何使用索引。
关于mysql - MySQL 是否在 Having 上使用索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5657876/