【问题标题】:Subquery with average and count in SQLSQL中具有平均值和计数的子查询
【发布时间】:2021-05-26 02:52:16
【问题描述】:

亲爱的, 我的数据包含以下信息;客户ID、交易金额和交易对手地区。对于每个地区,我想计算平均交易量。我的想法是使用子查询,但我卡住了。这是我目前的想法,它不起作用。

select avg(count_for_DK) from data where
(select count(amount) as count_for_DK, customer_id from data 
where country = 'DK'
group by customer_id, country 
order by customer_id asc)

有人帮帮我吗?

我的表格示例屏幕: https://ibb.co/BZXDL4Q

【问题讨论】:

  • 请采样输入表并希望输出。这将有助于解决您的问题。 :-)
  • 您好,感谢您的评论,我的输入示例已添加。我希望的输出应该包括一个数字,其中包含有关平均交易量的信息。
  • 不要使用图片,使用纯文本或表格降价来显示表格。

标签: sql count subquery


【解决方案1】:

据我了解,您希望在 country ='DK' 的情况下获得客户明智的平均金额 如果您正在寻找此逻辑,则以下查询将起作用:

 select customer_id ,avg(amount) as average_for_DK from data 
    where country = 'DK'
    group by customer_id
    order by customer_id 

如果您想获得国家“DK”的客户完成交易的平均数量

select avg(count_for_DK) from (
 select customer_id ,count(amount) as count_for_DK from data 
        where country = 'DK'
        group by customer_id
        order by customer_id) t 

如果您想获得每个国家/地区客户完成交易的平均数量:

select country,avg(count_for_country) from (
 select country,customer_id ,count(amount) as count_for_country from data 
        
        group by country,customer_id
        order by country,customer_id) t
group by country

【讨论】:

  • 如此接近,有第一步。现在我想从“count_for_DK”列获得平均值
  • 您想获得一个国家/地区每个客户的平均交易次数?
  • 是的,每个国家/地区客户完成的平均交易次数。回答如下:“客户平均与 DK 进行 9 次交易”。我只是在 Excel 中做的,所以结果是 10,3,但现在我应该在 SQL 中计算它。
  • 你是伟大的卡子,非常感谢你。我得到了它。祝您度过美好的一天!
  • 我的荣幸。最良好的祝愿。
猜你喜欢
  • 1970-01-01
  • 2012-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-02
  • 1970-01-01
相关资源
最近更新 更多