Mysql将正在创建的一列的总和除以正在创建的另一列的总和

标签 mysql count average

我有一个表格,其中按日期列出了一堆 Assets ,

我是:

1.- 按日期选择和分组 <- 完成

2.- 计算给定日期别名中的所有 Assets :count_by_date <- 完整

3.- 获取将接收 Assets 的总人数,并将该数字除以每个日期的 Assets 数量,别名:end_result <- 这是我遇到的问题。

SELECT 
dates, 
COUNT(*) AS `count_by_date`,
SUM(`amount_of_people`) / `count_by_date` AS `end_result`
FROM example_table
GROUP BY dates;

这可能吗?

如果是的话,这怎么行?

我特别标记了我在选择中遇到问题的部分以及已完成且工作正常的部分。

最佳答案

您不能在选择中使用别名列名称,您必须重复代码

    SELECT 
    dates, COUNT(*) AS count_by_date
    , SUM(b) / COUNT(*) AS average 
    FROM example_table
    GROUP BY dates;

数据库引擎在评估 select 子句后解析别名,因此在评估期间 select 子句不知道列名的别名

关于Mysql将正在创建的一列的总和除以正在创建的另一列的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52432000/

相关文章:

mysql - 触发器编辑mysql中的其他表

r - 在之前使用过的R中使用count时出错

php - SQL Server 获取行数

python - 单次迭代中的最小值、最大值和平均值

SQL/BIGQUERY 运行平均值与日期中的 GAP

mysql - 左连接是否可以表示为右连接,反之亦然?

php - 如果值不为空,则打印行中的值 PHP SQL

c# - 将外键添加到其他表或在选择查询中创建平面表的速度更快

mysql - 如何在 MySQL 中选择计数和减去子计数?

mysql - 计算排除空值的多个分数的平均值