【问题标题】:How to get the sum of two rows如何获得两行的总和
【发布时间】:2012-10-02 13:05:46
【问题描述】:

我在一个表中有两行。我想添加第三行来保存总值。

我的桌子是

SELECT 
CONTROLLED_PERCENTAGE, EL_CLIENT_ID, ID, 
   PERC_ADJ_UNITS_RECEIVED, PHY_DIG_OR_TOTAL, RECORDING_ID, 
   SUM_UNITS_RECEIVED, UNIT_TYPE
FROM EL_CLIENT_REC_UNITS;

我将拥有EL_CLIENT_IDUNIT_TYPEPHY_DIG_OR_TOTAL 将是“PHY”或“DIG”,我希望得到总数。我想将两条记录的SUM_UNITS_RECEIVEDPERC_UNITS_RECEIVED 相加,其中UNIT_TYPESEL_CLIENT_IDRECORDING_IDs 是相同的。然后我想将其插入为具有相同UNIT_TYPERECORDING_ID 的新行,但这次将PHY_DIG_OR_TOTAL 设置为“TOTAL”;

【问题讨论】:

  • :你能分享一些数据吗?

标签: sql oracle select insert


【解决方案1】:

试试这样的:

SELECT 
    ID, 
    EL_CLIENT_ID, 
    RECORDING_ID, 
    UNIT_TYPE,
    PHY_DIG_OR_TOTAL, 
    CONTROLLED_PERCENTAGE, 
    SUM_UNITS_RECEIVED, 
    PERC_ADJ_UNITS_RECEIVED
FROM EL_CLIENT_REC_UNITS

UNION ALL -- concatenate sets

SELECT 
    NULL                         AS ID, -- No ID for this row
    EL_CLIENT_ID                 AS EL_CLIENT_ID, 
    RECORDING_ID                 AS RECORDING_ID, 
    UNIT_TYPE                    AS UNIT_TYPE, 
    'TOTAL'                      AS PHY_DIG_OR_TOTAL, 
    AVG(CONTROLLED_PERCENTAGE)   AS CONTROLLED_PERCENTAGE,  -- I don't know what to do with that
    SUM(PERC_ADJ_UNITS_RECEIVED) AS PERC_ADJ_UNITS_RECEIVED,
    SUM(SUM_UNITS_RECEIVED)      AS SUM_UNITS_RECEIVED
FROM EL_CLIENT_REC_UNITS
GROUP BY UNIT_TYPE, EL_CLIENT_ID, RECORDING_ID;

尝试谷歌搜索GROUP BY SQL 语句以了解有关此语句的更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-28
    • 2016-03-14
    • 2019-11-21
    • 1970-01-01
    • 1970-01-01
    • 2022-11-29
    • 2019-09-23
    • 2014-01-23
    相关资源
    最近更新 更多