db2 需要获取平均计数

8tntrjer  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(288)

我想得到一个客户端拥有的产品=A的平均值。假设6个客户端的内部选择返回1,2,1,4,4,4
我希望看到结果为4,这意味着客户端可以拥有的平均产品数量为4
有人能确认以下内容吗?
选择avg(count)From(从表1中选择count(*)作为计数,其中产品= A按客户端分组)作为计数

mum43rcc

mum43rcc1#

拥有示例数据对于获得帮助非常重要。要确定数据的外观仍然很困难。让我们假设数据如下所示:

create table table1 (
      client varchar(10), 
      product varchar(10)
     );

    insert into table1 values
    ('xxx', 'A'),
    ('bbb', 'A'), 
    ('bbb', 'A'), 
    ('ccc', 'A'), 
    ('ddd', 'A'),
    ('ddd', 'A'),
    ('ddd', 'A'),
    ('ddd', 'A'),
    ('tt', 'A'), 
    ('tt', 'A'), 
    ('tt', 'A'), 
    ('tt', 'A'), 
    ('bdad', 'A'), 
    ('bdad', 'A'), 
    ('bdad', 'A'), 
    ('bdad', 'A');

我不能访问DB2数据库,但是这个查询对大多数的dbms类型都有效。你可能需要调整以适合DB2。

select purchased as most_common_value
    from (
      select client, count(*) as purchased
      from table1
      where product = 'A'
      group by client
      )z
    group by purchased
    order by count(client) desc
    limit 1

查询的输出为:

most_common_value
    4

相关问题