mysql:我想在我的行中包含一个值

时间:2016-07-16 01:49:47

标签: mysql

我有一张表,它有很多相同的值。 在我的表中,我想根据列选择不同的值。我的问题包括

这是我的表

column column.a column.b
1      tax1     100
1      tax2     200
1      tax3     300
2      tax1     100
2      tax2     200

这是我的选择陈述

        select distinct column, sum(column.b) - column.b as amount,
        (select column.b where column.a = tax2)as column.c
        from table order by column

我想在我的select语句column.b中包含column.a = tax2

这是我期望的输出。

column amount column.c
1      500    200
2      200    200

我只是不知道我可以将它包含在我的select语句中。感谢。

1 个答案:

答案 0 :(得分:0)

您的问题的答案是使用条件聚合和显式group by。例如,合理的查询将是:

select column,
       sum(case when a <> 'tax2' then b else 0 end) as amount,
       sum(case when a = 'tax2' then b else 0 end) as c
from t
group by column;

这并不能完全解答您问题中的结果。但是,您的问题中的结果不稳定,因为您将sum(column.b)column.b混合在一起 - 未聚合的值来自不确定的行。