当前位置: 首页 > 知识库问答 >
问题:

使用MySQL查询或javascript优化数据

司空俊悟
2023-03-14

我在mysql中有这些数据。

| code | date                | value |
| A    | 2016-04-04 00:00:00 | 0.1   |
| B    | 2016-04-04 00:00:02 | 0.5   |
| C    | 2016-04-04 00:00:05 | 1     |
| A    | 2016-04-04 00:11:00 | 0.2   |
| B    | 2016-04-04 00:12:25 | 0.6   |
| C    | 2016-04-04 00:15:30 | 0.4   |

我想调整数据并将其发送到json使用节点js / expressjs与每日,每月,每年的总和。

首先我尝试这个查询。

 SELECT date, value FROM 'table'
 WHERE code = 'A'
     AND date >= '2016-04-05 00:00:00'
 GROUP BY DATE_FORMAT(date, "%y-%m-%d-%H") // or "%y-%m-%d", "%y-%m"
 ORDER BY date;

这个查询运行良好。但我认为这是浪费。因为反复查询代码数量。

输出:

+---------------------+-------+ 
|         date        | value | 
+---------------------+-------+ 
| 2016-04-05 00:01:56 | 0 | 
| 2016-04-05 01:01:56 | 0 | 
| 2016-04-05 02:01:58 | 0 | 
| 2016-04-05 03:01:57 | 0 | 
| 2016-04-05 04:01:58 | 0 | 
| 2016-04-05 05:01:58 | 0 | 
| 2016-04-05 06:01:59 | 0 | 
| 2016-04-05 07:01:58 | 0 | 
| 2016-04-05 08:01:58 | 0 | 
| 2016-04-05 09:01:59 | 0 | 
| 2016-04-05 10:01:59 | 0.009 | 
| 2016-04-05 11:02:00 | 0.007 | 
+---------------------+-------+

我可以用一个查询获取所有数据吗?

最后,我想用Expresjs发送这种形式的数据。

[
    A: [{ date: '2016-04-04 00:00:00', sum: 4},
       { date: '2016-04-04 00:01:00', sum: 6}],

    B: [{ date: '2016-04-04 00:00:00', sum: 4},
       { date: '2016-04-04 00:01:00', sum: 6}]
]

或此表单

[
    { date: '2016-04-04 00:00:00', A: 4, B: 4 },
    { date: '2016-04-04 00:01:00', A: 4, B: 4 }
]

我尝试过mysql查询,sequelize,洛达什。但我找不到正确的方法。

共有1个答案

钱瑞
2023-03-14

您可以使用子查询来设置日期的格式,以便根据它进行分组。每日总和示例:

SELECT code, date, sum(value) as value
FROM (select code, DATE_FORMAT(date, "%y-%m-%d") as date, value from t1) as t2 
GROUP BY code, date
ORDER BY date

结果是:

"A";"16-04-04";"0.30000000447034836"
"B";"16-04-04";"1.100000023841858"
"C";"16-04-04";"1.4000000059604645"
 类似资料:
  • 问题内容: 这就是整个查询… 如果… 和… 有明显的理由吗? 正在服用? 扩展说明 问题答案: 您可以始终使用EXPLAIN或EXPLAIN EXTENDED 来查看MySql对查询所做的操作 您也可以用稍微不同的方式编写查询,是否尝试过以下方法? 看看效果如何会很有趣。我希望它会更快,因为目前,我认为MySql将为您拥有的每个节目运行内部查询1(这样一个查询将运行多次。联接应该更有效。) 如果希

  • 主要内容:概述,一、关联查询优化,1.左(右)外连接,2.内连接,3.JOIN语句原理,4.JOIN小结,5.Hash Join,二、子查询优化,三、排序优化,四、GROUP BY优化,五、优先考虑覆盖索引,六、使用前缀索引,七、索引下推ICP,八、其他查询优化,1.COUNT(*)与COUNT(具体字段)效率,2.不使用SELECT *,3.LIMIT 1优化,4.多使用commit概述 数据库调优的方式有多种: 建立索引、充分利用到索引、不让索引失效 对SQL语句进行优化 调优如缓冲、线程数

  • 本文向大家介绍Mysql使用索引实现查询优化,包括了Mysql使用索引实现查询优化的使用技巧和注意事项,需要的朋友参考一下 索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sql。如果没有索引,那么你可能需要把所有单词看一遍才能找到你想要的。 1.索引的优点 假设你拥有三个未索引的表t1、t2和t3,每个表都分

  • 问题内容: 一个供您所有MySQL专家使用的技巧:-) 我有以下查询: 订单表= 80,900行 产品表= 125,389行 o.id和p.order_id已建立索引 该查询大约需要6秒钟才能完成-太长了。我正在寻找一种优化它的方法,可能使用临时表或其他类型的联接。恐怕我对这两个概念的理解还很有限。 谁能建议我优化此查询的方法? 问题答案: 首先,我将使用其他样式的语法。 已经有20年的睡眠时间了

  • 使用filters优化查询 ElasticSearch支持多种不同类型的查询方式,这一点大家应该都已熟知。但是在选择哪个文档应该匹配成功,哪个文档应该呈现给用户这一需求上,查询并不是唯一的选择。ElasticSearch 查询DSL允许用户使用的绝大多数查询都会有各自的标识,这些查询也以嵌套到如下的查询类型中: constant_score filterd custom_filters_score

  • 如果我通过“.ASC”删除组的第二部分,但当我这样做时,数据是不正确的。它为什么要这样做,我如何修复它,并且仍然按照表1分组,除了表3之外,还要先按表1分组。 先进的谢谢! 我有时间接受完整的查询,并将表拉到一个通用表单,以便在没有客户端数据的情况下发布。我能够将模式添加到sqlfiddle中,但如果没有我使用的数据,结果可能会有所不同,而且由于字符的限制,我甚至无法将表前的100行(共7行)放入