mysql - 具有多个子查询的查询优化

标签 mysql sql

我要检索数据 本月米数减去上月米数, 并按照各自的代码扣除电表的值(value)。 然后总结一下整体。

大约有8000条记录。

但我尝试获取 5 条记录,需要时间 2 分 53 秒, 100 条记录需要时间(1 分 1:57 秒)。 真的很重要。

我有这样的查询。

SELECT code hvCode,
       IFNULL( (SELECT meter 
               FROM bmrpt 
               WHERE waktu_foto LIKE '2014-05%' 
               GROUP BY code HAVING code = hvCode),0 )
      -IFNULL( (SELECT meter 
               FROM bmrpt WHERE waktu_foto LIKE  '2014-04%' 
               GROUP BY code HAVING code = hvCode),0 )hasil
FROM bmrpt group by code;

有人有想法更改要优化的查询吗?

这是sqlfiddle http://www.sqlfiddle.com/#!2/495c0/1

最诚挚的问候

最佳答案

虽然你的问题不清楚,但请尝试下面的子查询,据我所知

SELECT COALESCE(SUM(`meter`),0) FROM table WHERE code ='hvCode' AND MONTH(`date_column`) = 5 
- 
SELECT COALESCE(SUM(`meter`),0) FROM table WHERE code ='hvCode' AND MONTH(`date_column`) = 4

关于mysql - 具有多个子查询的查询优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26249754/

相关文章:

python - pandas read_sql 返回带有参数传递的查询字符串

MySQL : How to synchronize databases after having been offline using replication?

php - 向现有 MySQL 表添加动态列?

MySQL 左连接和分组依据

javascript - 按接近度对坐标(纬度和经度)结果进行排序

mysql - 更新数据库表的有效方法

sql - 如何有效地将不同的值计入SQL中的不同行?

SQL JOIN 3个表,唯一行,跨表计算

php - 使用选项卡和 Accordion 显示结果

php - 使用 PDO 安全可靠的面向对象插入