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:获取计数和平均值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章