在select语句中使用不同组计数

时间:2016-06-01 06:55:32

标签: sql oracle11g count

我有一个查询,如下所示

select sum(amount)/count(id) from tabel1 where name ='sam';

我有一张这样的表

name id transaction_type_id transaction_type
sam   1    23                 direct
sam   1    56                 direct
sam   1     21                indirect
sam   1     34                indirect

当我算上时(id)我得到的回答是' 4'但我希望它是' 2'因为它有2个transaction_type作为'直接和间接'。请帮助我。

谢谢

3 个答案:

答案 0 :(得分:0)

试试这个:

select sum(amount)/count(distinct transaction_type) 
from tabel1 
where name ='sam'

这将返回2的计数,因为只有2 不同的 transaction_type值。

答案 1 :(得分:0)

尝试使用:

select sum(amount)/count(distinct transaction_type) from tabel1 where name ='sam';

答案 2 :(得分:0)

试试这个:

SELECT
    SUM(amount) / COUNT(id)
FROM tabel1
WHERE
    name = 'sam'
GROUP BY
    transaction_type;