从选择创建一个表,然后使用 group by - oracle sql

yii*_*bie 1 oracle

我在 oracle 工作,我不知道这个语句有什么问题。它给我的错误是must name this expression with a column alias

CREATE TABLE shipping_costs_grouped AS
    SELECT SUM(invoice_amt), SUM(entered_weight), SUM(billed_weight), SUM(net_amt), MAX(ZONE), pps_num
    FROM shipping_costs GROUP BY pps_num;
Run Code Online (Sandbox Code Playgroud)

我知道它与 group by 语句有关,但我不知道如何解决它

Jus*_*ave 6

您需要为计算列添加别名,以便 Oracle 知道表的列应该具有什么名称

CREATE TABLE shipping_costs_grouped 
AS
    SELECT SUM(invoice_amt) total_invoice_amt, 
           SUM(entered_weight) total_entered_weight, 
           SUM(billed_weight) total_billed_weight, 
           SUM(net_amt) total_net_amt, 
           MAX(ZONE) max_zone, 
           pps_num
      FROM shipping_costs 
     GROUP BY pps_num;
Run Code Online (Sandbox Code Playgroud)

应该是有效的语法。

为此类事情创建表格是否真的合适是您必须回答的问题。我的偏见是创建视图或潜在的物化视图更合适,但我不知道您要解决的问题的确切性质。