【问题标题】:how to merge rows in SQL Oracle如何在 SQL Oracle 中合并行
【发布时间】:2014-01-23 05:18:33
【问题描述】:

我有如下表

PARTICULAR  OPENING TRANSACTION ENDING
Expense     5456456   0         0
Expense      0        1232131   0
Expense      0        0         123123

但我想获得如下信息

PARTICULAR  OPENING TRANSACTION ENDING
Expense     5456456  1232131    123123

是否可以使用 sql 查询来实现?

【问题讨论】:

    标签: sql oracle aggregate-functions


    【解决方案1】:

    你想SUM吧,我猜!

    SELECT particular, 
           SUM(opening) AS total_opening, 
           SUM(transaction) AS total_transaction,
           SUM(ending) AS total_ending
      FROM your_table
     GROUP BY particular
    

    【讨论】:

      【解决方案2】:

      听起来你只是想要

      SELECT particular, 
             max(opening) opening, 
             max(transaction) transaction,
             max(ending) ending
        FROM your_table_name
       GROUP BY particular
      

      【讨论】:

        【解决方案3】:

        假设事务、开始和结束仅在一行中大于零,以下将起作用

        SELECT
           particular
           , MAX(opening) as opening
           , MAX(transaction) as transaction
           , MAX(ending) as ending
        FROM 
          TBL_NAME
        GROUP BY particular
        

        一般来说,这个文档(oracle 的 group by 函数)可能有用:http://docs.oracle.com/cd/E17952_01/refman-5.5-en/group-by-functions.html#function_max

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-05-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-05-16
          • 1970-01-01
          • 2023-01-20
          相关资源
          最近更新 更多