有没有一种方法可以遍历范围来生成一个大查询?如果不是这样,我将不得不制作一个python脚本来执行所有可能的操作。
我需要计算拖欠者的平均工资,这取决于他们的年龄和工资范围。。。我只用一个就可以了,但是有没有一种方法可以同时完成整个大查询呢?
年龄:[21,30],[31,40],[41,50],[51,60],[61,70],[71,80],[81,…]
工资:[0,200],[201,500],[501,1000],[1001,1500],[1501,2000],[2001,2500],[2501,3000],[3001,3500],[3501,4000],[4001,5000],[5001,6000],[6001,10000],[10001,…]
我的下一个查询适用于年龄[30,40]和薪水[1500-2000]。
SELECT
(COUNT(*) * 100)/ (SELECT
COUNT(*)
FROM Client
WHERE (Age BETWEEN 30 AND 40)
AND (Salary BETWEEN 1500 AND 2000)) AS percentage
FROM Client
WHERE (Age BETWEEN 30 AND 40)
AND (Salary BETWEEN 1500 AND 2000)
AND Defaulter = 1
GROUP BY Defaulter
结果是:
Defaulters-> 68
Clients at range-> 114
percentage-> 59
有没有办法让这一切一个接一个地发生n次?
谢谢您
编辑:
CREATE TABLE Client
(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255),
Salary int,
Age int,
Defaulter int
);
2条答案
按热度按时间nkcskrwz1#
创建一个包含最小和最大年龄列的表,以及另一个包含最小和最大工资的表。这些表可以是临时表或永久表。交叉连接他们和你的
Client
表,并引用查询中的“年龄”和“薪资”列,而不是当前使用的硬编码值。rryofs0p2#
不同服务器的sql语言各不相同,所以我把答案留给psuedo。
创建2个参考表。
在join语句中:
现在可以在select和group by语句中使用表中的“display”列。
如果不了解你的数据库,就不能再进一步了