这是我的作业,问题是:
按城市和短邮政编码列出客户的平均余额( thezip代码的前五位数字)。仅包括居住在的客户 华盛顿州('WA')。 Customer表也有5个 列(姓名,家庭,CustZip,CustCity,CustAVGBal)
我写了如下的查询。这是对的吗?
SELECT CustCity,LEFT(CustZip,5) AS NewCustZip,CustAVGBal
FROM Customer
WHERE CustCity = 'WA'
答案 0 :(得分:0)
没有。因为您正在截断邮政编码,所以您将拥有许多重复的记录。您的查询需要考虑到这一点并将它们汇总到一个记录中。此外,您需要一种从邮政编码获取状态的方法(我们是否缺少另一个表)。您可能在问题中省略了一列 - 如果表中有状态,请使用它来选择。
答案 1 :(得分:0)
不,这不正确。您被要求按州而不是城市限制查询中的人员。为了使问题更有趣,Customer表中没有状态列,因此您将不得不弄清楚如何限制记录而不直接引用状态。
你能想到任何方法吗?
答案 2 :(得分:0)
你的问题不是很清楚“按城市和短邮政编码”。根据具体含义,您可能需要查看“分组依据”或“按顺序”。
答案 3 :(得分:0)
我认为作业期望您列出每个城市/短代码组合的单个平均值。您需要使用GROUP BY子句和AVG函数。
此外,CustCity永远不会是'WA';您可能必须从邮政编码中获取“WA”支票(我不住在美国,但我想看前两位数就足够了。)
答案 4 :(得分:0)
您的查询未找到平均值,它将为同一CustCity和NewCustZip返回多行。查看AVG函数以及GROUP BY子句。
此外,这座城市不会成为华盛顿。您可能需要获取华盛顿所有邮政编码前缀的列表,并在查询中检查它们。看here。
答案 5 :(得分:-1)
是的,正确。