我正在努力寻找犯罪率低于每张桌子计算的平均犯罪率的地区。我本来应该为三个不同的表做这个,每个表都需要有自己独特的平均犯罪率。这就是我做到的,但我想知道是否有更好的方法?将此作为存储过程或函数写得更好(不知道我会怎么做)?怎么办呢?
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)
答案 0 :(得分:0)
解决方案简单你可以为每个表(T1,T2,T2)添加列到结果(犯罪/人口)并创建表格到结果AVG(犯罪/人口)