PG_分区表

  • 从原表复制表结构,如果分区键不是原表主键需要一步一步创建

    从其它表复制过来的表不能使用like origin_table including all,只能用like origin_table 不带including,除非原表的主键和分区表要使用的分区键是同一个,index索引后续手动创建。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    CREATE TABLE dy_fin_pf_account_move_line_detail_pb (
    -- 复制原表的列
    LIKE dy_fin_pf_account_move_line_detail,
    primary key(id,date)

    ) partition by range(date);

    create index dy_fin_pf_account_move_line_detail_pb_account_class_id_index on dy_fin_pf_account_move_line_detail_pb (account_class_id);
    create index dy_fin_pf_account_move_line_detail_pb_account_id_index on dy_fin_pf_account_move_line_detail_pb (account_id);
    create index dy_fin_pf_account_move_line_detail_pb_analytic_id_index on dy_fin_pf_account_move_line_detail_pb (analytic_id);
    create index dy_fin_pf_account_move_line_detail_pb_company_id_index on dy_fin_pf_account_move_line_detail_pb (company_id);
    create index dy_fin_pf_account_move_line_detail_pb_journal_id_index on dy_fin_pf_account_move_line_detail_pb (journal_id);
    create index dy_fin_pf_account_move_line_detail_pb_move_id_index on dy_fin_pf_account_move_line_detail_pb (move_id);
    create index dy_fin_pf_account_move_line_detail_pb_partner_id_index on dy_fin_pf_account_move_line_detail_pb (partner_id);
    create index dy_fin_pf_account_move_line_detail_pb_period_id_index on dy_fin_pf_account_move_line_detail_pb (period_id);
    create index dy_fin_pf_line_detail_pb_source_document_index on dy_fin_pf_account_move_line_detail_pb (document_number, source_model);
    create index dy_fin_pf_line_detail_pb_source_document_state_index on dy_fin_pf_account_move_line_detail_pb (document_number, source_model, state);

    ALTER TABLE dy_fin_pf_account_move_line_detail_pb DISABLE TRIGGER ALL;
    --ALTER TABLE dy_fin_pf_account_move_line_detail_pb ENABLE TRIGGER ALL;
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    SELECT pg_size_pretty(pg_relation_size('dy_fin_pf_account_move_line_detail_pkey'));
    SELECT pg_size_pretty(pg_relation_size('dy_fin_pf_account_move_line_detail_account_class_id_index'));
    SELECT pg_size_pretty(pg_relation_size('dy_fin_pf_account_move_line_detail_account_id_index'));
    SELECT pg_size_pretty(pg_relation_size('dy_fin_pf_account_move_line_detail_analytic_id_index'));
    SELECT pg_size_pretty(pg_relation_size('dy_fin_pf_account_move_line_detail_company_id_index'));
    SELECT pg_size_pretty(pg_relation_size('dy_fin_pf_account_move_line_detail_journal_id_index'));
    SELECT pg_size_pretty(pg_relation_size('dy_fin_pf_account_move_line_detail_move_id_index'));
    SELECT pg_size_pretty(pg_relation_size('dy_fin_pf_account_move_line_detail_partner_id_index'));
    SELECT pg_size_pretty(pg_relation_size('dy_fin_pf_account_move_line_detail_period_id_index'));
    SELECT pg_size_pretty(pg_relation_size('dy_fin_pf_line_detail_source_document_index'));
    SELECT pg_size_pretty(pg_relation_size('dy_fin_pf_line_detail_source_document_state_index'));



    Indexes:
    "dy_fin_pf_account_move_line_detail_pkey" PRIMARY KEY, btree (id)
    "dy_fin_pf_account_move_line_detail_account_class_id_index" btree (account_class_id)
    "dy_fin_pf_account_move_line_detail_account_id_index" btree (account_id)
    "dy_fin_pf_account_move_line_detail_analytic_id_index" btree (analytic_id)
    "dy_fin_pf_account_move_line_detail_company_id_index" btree (company_id)
    "dy_fin_pf_account_move_line_detail_journal_id_index" btree (journal_id)
    "dy_fin_pf_account_move_line_detail_move_id_index" btree (move_id)
    "dy_fin_pf_account_move_line_detail_partner_id_index" btree (partner_id)
    "dy_fin_pf_account_move_line_detail_period_id_index" btree (period_id)
    "dy_fin_pf_line_detail_source_document_index" btree (document_number, source_model)
    "dy_fin_pf_line_detail_source_document_state_index" btree (document_number, source_model, state)
    Foreign-key constraints:
    "dy_fin_pf_account_move_line_detail_account_class_id_fkey" FOREIGN KEY (account_class_id) REFERENCES dy_fin_pf_account_class_define(id) ON DELETE SET NULL
    "dy_fin_pf_account_move_line_detail_account_id_fkey" FOREIGN KEY (account_id) REFERENCES account_account(id) ON DELETE SET NULL
    "dy_fin_pf_account_move_line_detail_analytic_id_fkey" FOREIGN KEY (analytic_id) REFERENCES dy_fin_account_analytic_plan_instance(id) ON DELETE SET NULL
    "dy_fin_pf_account_move_line_detail_company_id_fkey" FOREIGN KEY (company_id) REFERENCES res_company(id) ON DELETE SET NULL
    "dy_fin_pf_account_move_line_detail_create_uid_fkey" FOREIGN KEY (create_uid) REFERENCES res_users(id) ON DELETE SET NULL
    "dy_fin_pf_account_move_line_detail_currency_id_fkey" FOREIGN KEY (currency_id) REFERENCES res_currency(id) ON DELETE SET NULL
    "dy_fin_pf_account_move_line_detail_extra_information_id_fkey" FOREIGN KEY (extra_information_id) REFERENCES dy_account_move_line_extra_info(id) ON DELETE SET NULL
    "dy_fin_pf_account_move_line_detail_journal_id_fkey" FOREIGN KEY (journal_id) REFERENCES account_journal(id) ON DELETE SET NULL
    "dy_fin_pf_account_move_line_detail_log_id_fkey" FOREIGN KEY (log_id) REFERENCES dy_base_common_log(id) ON DELETE SET NULL
    "dy_fin_pf_account_move_line_detail_move_id_fkey" FOREIGN KEY (move_id) REFERENCES account_move(id) ON DELETE SET NULL
    "dy_fin_pf_account_move_line_detail_originator_id_fkey" FOREIGN KEY (originator_id) REFERENCES hr_employee(id) ON DELETE SET NULL
    "dy_fin_pf_account_move_line_detail_partner_id_fkey" FOREIGN KEY (partner_id) REFERENCES res_partner(id) ON DELETE SET NULL
    "dy_fin_pf_account_move_line_detail_period_id_fkey" FOREIGN KEY (period_id) REFERENCES dy_fin_account_period(id) ON DELETE SET NULL
    "dy_fin_pf_account_move_line_detail_write_uid_fkey" FOREIGN KEY (write_uid) REFERENCES res_users(id) ON DELETE SET NULL
    Access method: heap
    Options: autovacuum_vacuum_scale_factor=0.03, autovacuum_analyze_scale_factor=0.03
  • range范围分区键左闭右开

    创建的分区子表分区键的值范围 是左闭右开的状态 for values from (‘2020-01-01’) to (‘2021-01-01’);

    相当于2020-01-01<=partition_values < 2021-01-01

    1
    2
    3
    4
    5
    create table dfpamld_2019 partition of dy_fin_pf_account_move_line_detail_pb for values from ('2000-01-01 00:00:00') to ('2020-01-01 00:00:00');
    create table dfpamld_2020 partition of dy_fin_pf_account_move_line_detail_pb for values from ('2020-01-01 00:00:00') to ('2021-01-01 00:00:00');
    create table dfpamld_2021 partition of dy_fin_pf_account_move_line_detail_pb for values from ('2021-01-01 00:00:00') to ('2022-01-01 00:00:00');
    create table dfpamld_2022 partition of dy_fin_pf_account_move_line_detail_pb for values from ('2022-01-01 00:00:00') to ('2023-01-01 00:00:00');
    create table dfpamld_2023 partition of dy_fin_pf_account_move_line_detail_pb for values from ('2023-01-01 00:00:00') to ('2024-01-01 00:00:00');
  • 复制表

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    \copy dy_fin_pf_account_move_line_detail to '/usr/local/pg137/dy_fin_pf_account_move_line_detail' DELIMITER ',' CSV;

    \copy下载相对于 insert into table select 要快。

    恢复可以考虑使用copy,因为它可以分批提交 提高执行效率

    \copy (select * from dy_fin_pf_account_move_line_detail order by id offset 0 limit 30000000) to '/usr/local/pg137/01.csv' DELIMITER ',' CSV;

    \copy (select * from dy_fin_pf_account_move_line_detail order by id offset 30000000 limit 30000000) to '/usr/local/pg137/02.csv' DELIMITER ',' CSV;

    \copy (select * from dy_fin_pf_account_move_line_detail order by id offset 60000000 limit 30000000) to '/usr/local/pg137/03.csv' DELIMITER ',' CSV;

    \copy (select * from dy_fin_pf_account_move_line_detail order by id offset 90000000 limit 30000000) to '/usr/local/pg137/04.csv' DELIMITER ',' CSV;

    \copy (select * from dy_fin_pf_account_move_line_detail order by id offset 120000000 limit 30000000) to '/usr/local/pg137/05.csv' DELIMITER ',' CSV;


    \copy (select * from dy_fin_pf_account_move_line_detail order by id offset 150000000 limit 30000000) to '/usr/local/pg137/06.csv' DELIMITER ',' CSV;

    \copy (select * from dy_fin_pf_account_move_line_detail order by id offset 180000000 limit 30000000) to '/usr/local/pg137/07.csv' DELIMITER ',' CSV;


    \copy (select * from dy_fin_pf_account_move_line_detail order by id offset 210000000 limit 30000000) to '/usr/local/pg137/08.csv' DELIMITER ',' CSV;


    \copy (select * from dy_fin_pf_account_move_line_detail order by id offset 240000000 limit 30000000) to '/usr/local/pg137/09.csv' DELIMITER ',' CSV;


    \copy (select * from dy_fin_pf_account_move_line_detail order by id offset 270000000 limit 30000000) to '/usr/local/pg137/10.csv' DELIMITER ',' CSV;


    \copy (select * from dy_fin_pf_account_move_line_detail order by id offset 300000000 limit 30000000) to '/usr/local/pg137/11.csv' DELIMITER ',' CSV;



    -------------------------------------------------------------
    psql -U odoo -p 11791 -d flih_1107 -c "
    copy dy_fin_pf_account_move_line_detail_pb from '/usr/local/pg137/01.csv' DELIMITER ',' CSV;
    copy dy_fin_pf_account_move_line_detail_pb from '/usr/local/pg137/02.csv' DELIMITER ',' CSV;
    copy dy_fin_pf_account_move_line_detail_pb from '/usr/local/pg137/03.csv' DELIMITER ',' CSV;
    copy dy_fin_pf_account_move_line_detail_pb from '/usr/local/pg137/04.csv' DELIMITER ',' CSV;
    copy dy_fin_pf_account_move_line_detail_pb from '/usr/local/pg137/05.csv' DELIMITER ',' CSV;
    copy dy_fin_pf_account_move_line_detail_pb from '/usr/local/pg137/06.csv' DELIMITER ',' CSV;
    copy dy_fin_pf_account_move_line_detail_pb from '/usr/local/pg137/07.csv' DELIMITER ',' CSV;
    copy dy_fin_pf_account_move_line_detail_pb from '/usr/local/pg137/08.csv' DELIMITER ',' CSV;
    copy dy_fin_pf_account_move_line_detail_pb from '/usr/local/pg137/09.csv' DELIMITER ',' CSV;
    copy dy_fin_pf_account_move_line_detail_pb from '/usr/local/pg137/10.csv' DELIMITER ',' CSV;
    copy dy_fin_pf_account_move_line_detail_pb from '/usr/local/pg137/11.csv' DELIMITER ',' CSV;
    "

    -------------------------------------------------------------
    insert into dy_fin_pf_account_move_line_detail_pb (select * from dy_fin_pf_account_move_line_detail order by id offset 180000000 limit 30000000);
    insert into dy_fin_pf_account_move_line_detail_pb (select * from dy_fin_pf_account_move_line_detail order by id offset 210000000 limit 30000000);
    insert into dy_fin_pf_account_move_line_detail_pb (select * from dy_fin_pf_account_move_line_detail order by id offset 240000000 limit 30000000);
    insert into dy_fin_pf_account_move_line_detail_pb (select * from dy_fin_pf_account_move_line_detail order by id offset 270000000 limit 30000000);
    insert into dy_fin_pf_account_move_line_detail_pb (select * from dy_fin_pf_account_move_line_detail order by id offset 300000000 limit 30000000);
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    -- 创建主分区表
    CREATE TABLE dy_fin_pf_account_move_line_detail_main (
    -- 复制原表的列
    LIKE dy_fin_pf_account_move_line_detail,
    primary key(id,date)

    ) partition by range(date);
    create table dfpamld_202301 partition of dy_fin_pf_account_move_line_detail_main for values from ('2023-01-01 00:00:00') to ('2023-02-01 00:00:00');
    create table dfpamld_202302 partition of dy_fin_pf_account_move_line_detail_main for values from ('2023-02-01 00:00:00') to ('2023-03-01 00:00:00');
    create table dfpamld_202303 partition of dy_fin_pf_account_move_line_detail_main for values from ('2023-03-01 00:00:00') to ('2023-04-01 00:00:00');
    create table dfpamld_202304 partition of dy_fin_pf_account_move_line_detail_main for values from ('2023-04-01 00:00:00') to ('2023-05-01 00:00:00');
    create table dfpamld_202305 partition of dy_fin_pf_account_move_line_detail_main for values from ('2023-05-01 00:00:00') to ('2023-06-01 00:00:00');
    create table dfpamld_202306 partition of dy_fin_pf_account_move_line_detail_main for values from ('2023-06-01 00:00:00') to ('2023-07-01 00:00:00');
    create table dfpamld_202307 partition of dy_fin_pf_account_move_line_detail_main for values from ('2023-07-01 00:00:00') to ('2023-08-01 00:00:00');
    create table dfpamld_202308 partition of dy_fin_pf_account_move_line_detail_main for values from ('2023-08-01 00:00:00') to ('2023-09-01 00:00:00');
    create table dfpamld_202309 partition of dy_fin_pf_account_move_line_detail_main for values from ('2023-09-01 00:00:00') to ('2023-10-01 00:00:00');
    create table dfpamld_202310 partition of dy_fin_pf_account_move_line_detail_main for values from ('2023-10-01 00:00:00') to ('2023-11-01 00:00:00');
    create table dfpamld_202311 partition of dy_fin_pf_account_move_line_detail_main for values from ('2023-11-01 00:00:00') to ('2023-12-01 00:00:00');
    create table dfpamld_202312 partition of dy_fin_pf_account_move_line_detail_main for values from ('2023-12-01 00:00:00') to ('2024-01-01 00:00:00');

    -- 创建归档分区表
    CREATE TABLE dy_fin_pf_account_move_line_detail_back (
    -- 复制原表的列
    LIKE dy_fin_pf_account_move_line_detail,
    primary key(id,date)

    ) partition by range(date);

    -- 数据复制或同步
    insert into dy_fin_pf_account_move_line_detail_main (select * from dy_fin_pf_account_move_line_detail where date between '2023-01-01' and '2024-01-01' order by id offset 0 limit 30000000);
    insert into dy_fin_pf_account_move_line_detail_main (select * from dy_fin_pf_account_move_line_detail where date between '2023-01-01' and '2024-01-01' order by id offset 30000000 limit 30000000);
    insert into dy_fin_pf_account_move_line_detail_main (select * from dy_fin_pf_account_move_line_detail where date between '2023-01-01' and '2024-01-01' order by id offset 60000000 limit 30000000);
    insert into dy_fin_pf_account_move_line_detail_main (select * from dy_fin_pf_account_move_line_detail where date between '2023-01-01' and '2024-01-01' order by id offset 90000000 limit 30000000);
    insert into dy_fin_pf_account_move_line_detail_main (select * from dy_fin_pf_account_move_line_detail where date between '2023-01-01' and '2024-01-01' order by id offset 120000000 limit 30000000);

    -- 恢复索引
    create index dy_fin_pf_account_move_line_detail_main_account_class_id_index on dy_fin_pf_account_move_line_detail_main (account_class_id);
    create index dy_fin_pf_account_move_line_detail_main_account_id_index on dy_fin_pf_account_move_line_detail_main (account_id);
    create index dy_fin_pf_account_move_line_detail_main_analytic_id_index on dy_fin_pf_account_move_line_detail_main (analytic_id);
    create index dy_fin_pf_account_move_line_detail_main_company_id_index on dy_fin_pf_account_move_line_detail_main (company_id);
    create index dy_fin_pf_account_move_line_detail_main_journal_id_index on dy_fin_pf_account_move_line_detail_main (journal_id);
    create index dy_fin_pf_account_move_line_detail_main_move_id_index on dy_fin_pf_account_move_line_detail_main (move_id);
    create index dy_fin_pf_account_move_line_detail_main_partner_id_index on dy_fin_pf_account_move_line_detail_main (partner_id);
    create index dy_fin_pf_account_move_line_detail_main_period_id_index on dy_fin_pf_account_move_line_detail_main (period_id);
    create index dy_fin_pf_line_detail_pb_source_document_index on dy_fin_pf_account_move_line_detail_main (document_number, source_model);
    create index dy_fin_pf_line_detail_pb_source_document_state_index on dy_fin_pf_account_move_line_detail_main (document_number, source_model, state);

    -- 外键恢复
    alter table dy_fin_pf_account_move_line_detail_main
    add constraint "dy_fin_pf_account_move_line_detail_main_account_class_id_fkey" FOREIGN KEY (account_class_id) REFERENCES dy_fin_pf_account_class_define(id) ON DELETE SET NULL,
    add constraint "dy_fin_pf_account_move_line_detail_main_account_id_fkey" FOREIGN KEY (account_id) REFERENCES account_account(id) ON DELETE SET null,
    add constraint "dy_fin_pf_account_move_line_detail_main_analytic_id_fkey" FOREIGN KEY (analytic_id) REFERENCES dy_fin_account_analytic_plan_instance(id) ON DELETE SET null,
    add constraint "dy_fin_pf_account_move_line_detail_main_company_id_fkey" FOREIGN KEY (company_id) REFERENCES res_company(id) ON DELETE SET null,
    add constraint "dy_fin_pf_account_move_line_detail_main_create_uid_fkey" FOREIGN KEY (create_uid) REFERENCES res_users(id) ON DELETE SET null,
    add constraint "dy_fin_pf_account_move_line_detail_main_currency_id_fkey" FOREIGN KEY (currency_id) REFERENCES res_currency(id) ON DELETE SET null,
    add constraint "dy_fin_pf_account_move_line_detail_main_extra_information_id_fkey" FOREIGN KEY (extra_information_id) REFERENCES dy_account_move_line_extra_info(id) ON DELETE SET null,
    add constraint "dy_fin_pf_account_move_line_detail_main_journal_id_fkey" FOREIGN KEY (journal_id) REFERENCES account_journal(id) ON DELETE SET null,
    add constraint "dy_fin_pf_account_move_line_detail_main_log_id_fkey" FOREIGN KEY (log_id) REFERENCES dy_base_common_log(id) ON DELETE SET null,
    add constraint "dy_fin_pf_account_move_line_detail_main_move_id_fkey" FOREIGN KEY (move_id) REFERENCES account_move(id) ON DELETE SET null,
    add constraint "dy_fin_pf_account_move_line_detail_main_originator_id_fkey" FOREIGN KEY (originator_id) REFERENCES hr_employee(id) ON DELETE SET null,
    add constraint "dy_fin_pf_account_move_line_detail_main_partner_id_fkey" FOREIGN KEY (partner_id) REFERENCES res_partner(id) ON DELETE SET null,
    add constraint "dy_fin_pf_account_move_line_detail_main_period_id_fkey" FOREIGN KEY (period_id) REFERENCES dy_fin_account_period(id) ON DELETE SET null,
    add constraint "dy_fin_pf_account_move_line_detail_main_write_uid_fkey" FOREIGN KEY (write_uid) REFERENCES res_users(id) ON DELETE SET null

    -- 修改原表名
    alter table dy_fin_pf_account_move_line_detail rename to dy_fin_pf_account_move_line_detail_old;
    -- 修改主表分区名
    alter table dy_fin_pf_account_move_line_detail_main rename to dy_fin_pf_account_move_line_detail;


    -- 卸载分区
    alter table dy_fin_pf_account_move_line_detail detach partition dfpamld_202310;

    -- 挂载分区
    alter table dy_fin_pf_account_move_line_detail_back attach partition dfpamld_202310 for values from ('2023-10-01') to ('2023-11-01');







    select sm.id
    from stock_move as sm
    where sm.create_entries = 'sum'
    and sm.move_id is null;


    select sm.id,dfpamld.move_id
    from stock_move as sm,
    dy_fin_pf_account_move_line_detail dfpamld
    where sm.create_entries = 'sum'
    and sm.move_id is null
    and dfpamld.source_model = 'stock.move'
    and dfpamld.document_number = sm.id::varchar;

    create or replace view check_stock_move_move_id_view as
    select distinct sm.id, dfpamld.move_id
    from stock_move as sm left join dy_fin_pf_account_move_line_detail dfpamld on (dfpamld.source_model = 'stock.move' and dfpamld.document_number = sm.id::varchar and dfpamld.date between '2023-01-01' and '2023-01-31')
    where sm.create_entries = 'sum'
    and sm.move_id is null;

    explain
    update stock_move set move_id = t.move_id
    from (
    select dfpamld.document_number::int stock_move_id,dfpamld.move_id
    from dy_fin_pf_account_move_line_detail dfpamld
    where dfpamld.source_model = 'stock.move'
    and dfpamld.move_id is not null
    and dfpamld.date between '2023-01-01' and '2023-01-31'
    and exists (select 1 from stock_move as sm where sm.id = dfpamld.document_number::int and sm.move_id is null and sm.date between '2023-01-01' and '2023-01-31')
    ) t
    where t.stock_move_id = stock_move.id;



    update stock_move set move_id = t.move_id
    from (
    select dfpamld.document_number::int stock_move_id,dfpamld.move_id,dfpamld.date
    from dy_fin_pf_account_move_line_detail dfpamld
    where dfpamld.source_model = 'stock.move'
    and dfpamld.move_id is not null
    and dfpamld.date between '2021-09-01' and '2021-09-30'
    and exists (select 1 from stock_move as sm where sm.id = dfpamld.document_number::int and sm.move_id is null and sm.date between '2021-09-01' and '2021-09-30')
    ) t
    where t.stock_move_id = stock_move.id;

    SELECT
    move_id,
    document_number
    FROM
    dy_fin_pf_account_move_line_detail
    WHERE
    belong_module_type = 'scm'
    AND STATE = 'gl_account_move'
    AND source_model = 'stock.move'
    AND date::DATE BETWEEN '2023-10-16' AND '2023-10-16'
    GROUP BY
    move_id,
    document_number;
    1
    2
    3
    4
    5
    6
    create table t1 partition by list (id);
    create table t1_1 partition of t1 for values in (1);
    create table t1_1 partition of t1 for values in (2);
    create table t1_1 partition of t1 for values in (3);