簡體   English   中英

在數據庫中創建一個新表以從一個已經存在的大表中提取數據

[英]Make a new table in DB to extract data from an already existing large table

我正在使用一個數據庫,該數據庫大約有2年的數據,大約有1億行和30列,每10秒具有不同參數的值。 我想創建一個新表,該表的每個數據的平均日期僅包含1行。 該數據庫每個日期大約有100 000行。 表名是進程,主鍵是id

我該怎么做,因為每當我在此現有表中搜索某些內容時,就會花很長時間才能找到所需的輸出。

是否有可能創建一個新表,該表將獲取單個日期的所有數據(約10萬行)的平均值,並將其放在一行中

您想要類似的東西:

CREATE TABLE averages AS
SELECT
    date_trunc('day', data_capture_timestamp_column) AS day,
    avg(col1) AS col1_avg,
    avg(col2) AS col2_avg,
    ...
FROM my_table
GROUP BY 1;

GROUP BY 1通過第一個SELECT參數對GROUP表示數據,在這種情況下為日期。 建議在my_table( date_trunc('day', data_capture_timestamp_column))上使用表達式索引。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM