合并两行不同的值

时间:2017-05-26 12:32:52

标签: sql oracle

当我尝试运行以下查询时

SELECT product_code, 
       COUNT(*) FROM PRODUCT
 WHERE product_line = 'IRON'
 GROUP BY product_code;

我收到以下输出

product_code | count(*)
-----------------------------
IRON(A)      |         25
IRON(B)      |         50
IRON(C)      |         50
IRON(D)      |         100

我需要将第1行和第4行结合起来。之后,我期待这样的事情

product_code | count(*)
---------------------------
IRON(A)      |         125
IRON(B)      |         50
IRON(C)      |         50

请帮我解决这个问题。提前谢谢。

1 个答案:

答案 0 :(得分:2)

好吧,如果您只需要合并IRON(A)IRON(D)并将总计值显示为IRON(A)的计数,那么:

SELECT CASE WHEN product_code = 'IRON(D)' 
            THEN 'IRON(A)' 
            ELSE  product_code 
            END AS product_code, 
       COUNT(*) 
FROM PRODUCT
WHERE product_line = 'IRON'
GROUP BY CASE WHEN product_code = 'IRON(D)' 
              THEN 'IRON(A)' 
              ELSE product_code 
              END AS product_code;