MySQL:获取计数和平均值 [重复]

Posted

技术标签:

【中文标题】MySQL:获取计数和平均值 [重复]【英文标题】:MySQL: Get Counts and Averages [duplicate] 【发布时间】:2017-04-28 22:59:49 【问题描述】:
select 
COUNT(pd.property_id) AS `Beginning Total File Count`,
COUNT(pd.recv_dt) as `average days in inventory`,
AVG(pd.status = 'P') as `average days in pre-marketing`,
AVG(pd.status NOT IN('I','C')) as `average days onMarket`,
AVG(pd.status ='U') as `average days UnderContract`,
SUM(pd.status = 'O') as `Total FilesOccupied Status`,
SUM(pd.status = 'O') / COUNT(pd.property_id) as `percentage of Occupied / 
total file count`
from resnet.property_Details pd

我正在努力

    开始总文件数 平均库存天数 预营销的平均天数 平均上市天数 合同平均天数 占用状态的文件总数 占用百分比/文件总数

不确定我的查询是否写得正确,请帮忙:)

【问题讨论】:

没有任何解释我们怎么知道计算结果? 什么样的解释?只是在寻找逻辑和查询写入检查。 SO 不是查询检查网站。 AVG 和 SUM 作用于数值,而不是逻辑值。正如@vkp 所说,SO 不是代码编写服务,也不是查询检查站点。您要查找的内容并不简单,而且您的代码相距甚远,甚至都不是起点。要在这里获得帮助,您需要证明您已经完成了研究并试图让它发挥作用。在 *** 上查找“如何提问”。 【参考方案1】:

好吧,这是一个非常疯狂的猜测,你在这个请求之后:

select 
COUNT(distinct pd.property_id) AS `Beginning Total File Count`,
COUNT(pd.recv_dt) as `average days in inventory`,
AVG(IF(pd.status = 'P', 1,0)) as `average days in pre-marketing`,
AVG(IF(pd.status NOT IN('I','C'), 1,0)) as `average days onMarket`,
AVG(IF(pd.status ='U', 1,0)) as `average days UnderContract`,
SUM(IF(pd.status = 'O', 1,0)) as `Total FilesOccupied Status`,
SUM(IF(pd.status = 'O', 1,0)) / COUNT(pd.property_id) as `percentage of Occupied / 
total file count`
from resnet.property_Details pd

但如果你不使用group by 语句,使用AVG() 似乎很奇怪......(它要么只是一个条件总和,要么你需要按某些东西分组)

【讨论】:

以上是关于MySQL:获取计数和平均值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 MySQL 中计算每天的平均销售额

pandas通过指定列获取平均值和模式组[重复]

MySQL获取组中每x分钟的列的平均值和总和

MySQL:获取平均时差?

熊猫如何使用 groupby 将 NaN 值替换为平均值 [重复]

在 Pandas 中获取每个分区的每列平均值 [重复]