繁体   English   中英

MySQL使用分组依据计算和平均值

[英]MySQL counts and averages with group by

我会尽力描述。 使用错误的数据模型。

Table1
id, name, area, bla1, bla2, bla3

Table2
table1_ID, stuff1, stuff2, ID

trigger on table1
insert row in table2 if table1 is updated

在表table1我有10个不同的区域,只有186行,不是很多,我无法在2秒钟之内使用Excel手动完成此操作,但是我想创建实时报告。

该报告将是

area1 - %complete
area2 - %complete
area3 - %complete
etc.....

当在table1更新一行时,触发器将在table2中插入一些表示“完成”的内容。

我可以(可能真的很糟糕)

select
(select count(*) from table1 a where a.id in (select id from table2))
/
(select count(*) from table1)
*100

这使我完成了总体百分比。 我正在考虑向每个选择添加where子句,硬编码“区域”,然后合并十次。 gh,告诉我,有一种更好的方法可以在一份报告中得到。

显然,此查询失败

select area,
(
(select count(*) from table1 a where a.id in (select id from table2))
/
(select count(*) from table1)
*100) from table1
group by area

我认为group by必须适合某个地方。 提前致谢!

select area, count(table2.table1_ID) / count(table1.id)
from table1 left join table2 on table1.id = table2.table1_ID
group by area

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM