gpt4 book ai didi

sql - 汇总数据的数据库设计

转载 作者:行者123 更新时间:2023-11-29 01:15:17 24 4
gpt4 key购买 nike

我有一个新表,我要添加到一堆其他汇总数据中,主要是通过计算每周平均值来减轻一些负担。

我的问题是,使用一种模型是否比使用另一种模型更好。一个模型以星期几作为一列,带有附加的价格列,或者另一个模型作为 DOW 的一系列字段,每个字段都取一个价格。

我想知道哪个可以让我在速度和/或头痛方面节省时间?或者至少是权衡取舍。

IE.

ID   OBJECT_ID   MON  TUE  WED  THU  FRI  SAT  SUN   SOURCE

ID   OBJECT_ID   DAYOFWEEK   PRICE   SOURCE

最佳答案

我会优先考虑以下聚合模型:

ID | OBJECT_ID | DATE       | PRICE  | SOURCE 
---+-----------+------------+--------+--------
1 | 100 | 2010/01/01 | 10.00 | 0
2 | 100 | 2010/01/02 | 15.00 | 0
3 | 100 | 2010/01/03 | 20.00 | 0
4 | 100 | 2010/01/04 | 12.00 | 0

然后您将能够非常容易且相对快速地汇总上述数据以生成每周/每月/每年的平均值。

要获取每周平均值的列表,您可以执行以下操作:

SELECT WEEK(date), AVG(price) FROM table GROUP BY WEEK(date);

对于一些进一步的示例,以下查询将返回星期日的平均价格:

SELECT AVG(price) FROM table WHERE DAYOFWEEK(date) = 1;

或者获取一年中第 8 周的平均每日价格:

SELECT AVG(price) FROM table WHERE WEEK(date) = 8;

获得月度或年度平均值也很容易:

SELECT MONTH(date), AVG(price) FROM table GROUP BY MONTH(date);

如果上述聚合仍然太昂贵而无法计算,我只会选择更多非规范化选项,例如您提出的两个选项。

关于sql - 汇总数据的数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2311554/

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