gpt4 book ai didi

mysql - 选择非标准化形式的mysql数据

转载 作者:行者123 更新时间:2023-11-30 01:27:05 25 4
gpt4 key购买 nike

如果这看起来是一个“愚蠢”的问题,我深表歉意 - 我真的不知道正确的术语来描述我正在尝试做的事情(因此寻求帮助是没有结果的)。

基本上,我最初的数据格式如下:

|      timestamp      | category A | category B | .......| category n|
| 2011-12-02 00:05:00 | 23.63 | 27.00 | .......| 24.03 |
| 2011-12-02 00:10:00 | 23.75 | 24.42 | .......| 24.45 |
| 2011-12-02 00:15:00 | 23.31 | 23.96 | .......| 26.54 |

我将此数据放入数据库(并将其规范化),以便它存在于数据库中,如下所示:

+---------------------+--------------+-------+
| timestamp | catergory_id | value |
+---------------------+--------------+-------+
| 2011-12-02 00:05:00 | 2 | 27.00 |
| 2011-12-02 00:10:00 | 2 | 24.42 |
| 2011-12-02 00:15:00 | 2 | 23.96 |
| 2011-12-02 00:20:00 | 2 | 23.73 |
| 2011-12-02 00:25:00 | 2 | 23.73 |
+---------------------+--------------+-------+

我试图按时间戳选择不同的类别(以进行比较),如下所示:

+---------------------+-------+-------+
| timestamp | cat_a | cat_b |
+---------------------+-------+-------+
| 2011-12-02 00:05:00 | 23.63 | 27.00 |
| 2011-12-02 00:10:00 | 23.75 | 24.42 |
| 2011-12-02 00:15:00 | 23.31 | 23.96 |
| 2011-12-02 00:20:00 | 23.00 | 23.73 |
| 2011-12-02 00:25:00 | 22.91 | 23.73 |
+---------------------+-------+-------+

这基本上与原始数据结构类似(但我想在多个和变量之间进行选择/比较,类别不仅仅是两个)。

我已经能够使用join(在各个表中选择各个类别后)来实现此目的。这对于比较两个类别来说是可以的,但似乎效率很低,特别是如果我想选择 15 或 20 个不同的类别进行比较。如果特定类别缺少数据点,也会出现问题。

(我这样做的另一种方法是选择单个表,然后将数据“合并”到稍后使用的 python 应用程序中,但这似乎同样效率低下)

我觉得在 mysql 中必须有一种更简单或更直观的方法来做到这一点 - 而我只是错过了一些非常基本的东西。我真的不想去规范化(因为有很多类别,除了这个类别之外,将其规范化用于其他用途是有意义的)。

干杯,

最佳答案

这基本上是一个数据透视表问题。 MySQL 没有内置的 SQL 扩展来像其他 DBMS 那样创建数据透视表,因此它们有点棘手。您可以在这里找到一种制作方法:http://www.artfulsoftware.com/infotree/qrytip.php?id=78

关于mysql - 选择非标准化形式的mysql数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17873986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com