【问题标题】:How to get all the sum of the table?如何获得表格的所有总和?
【发布时间】:2018-05-09 20:45:05
【问题描述】:

我创建了一个名为 NOV_23 的表,我想获取最右边部分的总和以及运输、膳食、住宿、其他、增值税和邮资的总和

CREATE TABLE NOV_23
(
EMPLOYEE_ID INT,
DIVISION VARCHAR (25),
LAST_NAME VARCHAR (25),
FIRST_NAME VARCHAR (25),
TRANSPORTATION INT,
LODGING INT,
TOTAL INT
);

然后我插入了一些值

INSERT INTO NOV_23 VALUES             
('1','DivA','LName1','FName1','1','1','')

INSERT INTO NOV_23 VALUES
('2','DivA','LName2','FName2','5','5','')

因此我得到的结果为:

  Employee_ID   Division Last_Name First_Name   Transportation   LODGING   TOTAL
  1             DivA     LNameA    FNameA       1                1       
  2             DivA     LNameB    FNameB       5                5 

我可以通过更新获取总数

  UPDATE NOV_23
  SET TOTAL = (Transportation + Lodging)
  WHERE Employee_ID = 1

  UPDATE NOV_23
  SET TOTAL = (Transportation + Lodging)
  WHERE Employee_ID = 2

我可以在其中得到结果

  Employee_ID   Division Last_Name First_Name   Transportation   LODGING         TOTAL
  1             DivA     LNameA    FNameA       1                1          2
  2             DivA     LNameB    FNameB       5                5         10

我想知道的是如何获取和显示交通总和(6)、住宿总和(6)以及它们的总和即(6 +6 = 12)

    Employee_ID   Division Last_Name First_Name   Transportation   LODGING        TOTAL
  1             DivA     LNameA    FNameA       1                1          2
  2             DivA     LNameB    FNameB       5                5         10
  --            --       --        --           6                6         12

【问题讨论】:

  • 这不应同时使用mysqloracle 进行标记。你用的是哪一个?

标签: mysql sql oracle oracle11g


【解决方案1】:

您可以使用rollup 计算小计和累计数

SELECT Employee_ID, Division, First_Name||' '||Last_Name Name,
       SUM(Transportation) AS Transportation,
       SUM(Lodging) AS Lodging,
       SUM(Total) AS Total
  FROM nov_23
 GROUP BY ROLLUP (Employee_ID, Division, First_Name||' '||Last_Name)
 ORDER BY Employee_ID, Division, First_Name||' '||Last_Name;

您可以计算使用cube指定的所有维度组合的小计和累积

SELECT Employee_ID, Division, First_Name||' '||Last_Name Name,
       SUM(Transportation) AS Transportation,
       SUM(Lodging) AS Lodging,
       SUM(Total) AS Total
  FROM nov_23
 GROUP BY CUBE (Employee_ID, Division, First_Name||' '||Last_Name)
 ORDER BY Employee_ID, Division, First_Name||' '||Last_Name;

【讨论】:

    猜你喜欢
    • 2019-03-31
    • 1970-01-01
    • 2017-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-23
    • 2021-11-07
    相关资源
    最近更新 更多