SQL查询与子查询?
感谢您提前提供任何帮助,我无法将我的SQL技能包装在这个…
我有两个这样的表: 设置
分配
我想计算每台服务器上的负载.如果客户有多个服务器,则客户会对其进行划分,因此客户1在每个服务器上放置25个负载.我想要得到的结果是:
我试着做一个与此类似的求和函数: sum(viewerlimit/(count # of servers)) as load group by serverip 但我不能在sum函数中进行子查询.每个客户有许多客户和可能有许多服务器,因此手动操作会变得过于复杂.我很感激任何意见. 解决方法这是带有计数的未启发版本的派生表:select serverip,sum (viewerlimit/cast (ServerCount as float)) Load from ( select customerid,count(*) ServerCount from distribution group by customerid ) a inner join settings on a.customerid = settings.customerid inner join distribution on settings.customerid = distribution.customerid group by serverip Sql Fiddle to play around 更新 – 尝试解释 派生表用于生成可以连接到查询主体的临时结果集.它被放置在from子句中并括在括号中.您可以使用普通选择可以使用的任何内容,顶部,排序依据,聚合函数等.您唯一不能使用的是与主体中的表相关联.哦,和CTE.派生表必须是别名. 在先前的示例派生表’a’中,按customerid选择服务器计数.主体将其视为具有CustomerId和ServerCount列的表,可以用作所有列出的表中的任何列.在设置和’a’之间执行customerid连接.由于这是1:1的关系(两个表在给定customerid的情况下产生单行),因此不会发生重复. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |