我试图找到犯罪率低于为每个表计算的平均犯罪率的地区。我应该为三个不同的表执行此操作,并且每个表都需要具有自己独特的平均犯罪率。我就是这样做的,但是我想知道是否有更好的方法?将其编写为存储过程或函数会更好(不确定如何)吗?还可以怎么做?
T1,T2,T3分别是此示例的状态。我正在查看三个不同州的地区,我想要每个州的平均犯罪率。然后,我要打印出低于那些平均值的区域。我还想确定结果来自哪个联合结果集。
SELECT district, population
FROM T1
WHERE (crime/Population) < (SELECT AVG(crime/population) From T1)
UNION ALL
SELECT district, population
FROM T2
WHERE (crime/Population) < (SELECT AVG(crime/population) From T2)
UNION ALL
SELECT district, population
FROM T3
WHERE AND (crime/Population) < (SELECT AVG(crime/population) From T3)
最佳答案
解决方案简单,您可以为每个表(T1,T2,T2)在结果(犯罪/人口)中添加列,并创建表以得出AVG(犯罪/人口)
关于mysql - 查找多个表的速率低于平均速率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46449418/