标签:mysql indexing aggregate-functions having
我的查询的一部分看起来像:
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
有几行具有不同的日期值.我想选择日期>的ID组’2011-04-13 04:28:02′.然后我想要一个属于一个组的平均行数,没有日期条件.
按原样查询,顺便说一下也不行.
我的另一个问题是日期> ‘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,indexing,aggregate-functions,having 来源: https://codeday.me/bug/20190710/1420042.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。