按函数分组计算每行的匹配总数| SQL/Oracle 我正在尝试查询我的几个表,以显示宠物连锁店每个分支店的高级会员数量(计数)(每个分支店都有标准会员和高级会员)和每个商店的地址(地址是由街道+号码、城市和邮政编码/邮政编码组成的结构化类型)。

按函数分组计算每行的匹配总数| SQL/Oracle 我正在尝试查询我的几个表,以显示宠物连锁店每个分支店的高级会员数量(计数)(每个分支店都有标准会员和高级会员)和每个商店的地址(地址是由街道+号码、城市和邮政编码/邮政编码组成的结构化类型)。,sql,oracle,group-by,count,Sql,Oracle,Group By,Count,在尝试创建查询时,它会不断计算所有分支机构的高级会员客户总数,并将其显示为每个门店/分支机构的计数 如以下所示,洛杉矶、旧金山和圣地亚哥的分店的保费客户数量均为9,这是所有分支机构的总保费会员人数,正确的数量应该是LA的5,SF的3,SD的1。 我不确定我的代码出了什么问题 SELECT COUNT(x.customerID), y.storeAddress.streetAddress, y.storeAddress.city, y.storeAddress.postcode FROM petS

在尝试创建查询时,它会不断计算所有分支机构的高级会员客户总数,并将其显示为每个门店/分支机构的计数

如以下所示,洛杉矶、旧金山和圣地亚哥的分店的保费客户数量均为9,这是所有分支机构的总保费会员人数,正确的数量应该是LA的5,SF的3,SD的1。 我不确定我的代码出了什么问题

SELECT COUNT(x.customerID), y.storeAddress.streetAddress, y.storeAddress.city, y.storeAddress.postcode FROM petStoreMemberships x, petStoreBranches y WHERE x.membership = 'Premium' GROUP BY y.storeaddress.streetAddress, y.storeaddress.city, y.storeaddress.postcode ORDER BY COUNT(x.customerID); 选择计数(x.customerID)、y.storeAddress.streetAddress、y.storeAddress.city、y.storeAddress.postcode 来自petStoreMemberships x,PetStorey分支机构 其中x.membership=‘Premium’ 按y.storeaddress.streetAddress、y.storeaddress.city、y.storeaddress.postcode分组 按计数订购(x.客户ID);

首先,您应该使用正确的
JOIN
语法

其次,应该使用有意义的表别名

第三,您的
JOIN
需要更正用于加入的子句。以下是猜测:

SELECT COUNT(*), b.storeAddress.streetAddress, b.storeAddress.city, b.storeAddress.postcode
FROM petStoreMemberships m JOIN
     petStoreBranches b
     ON m.branchId = b.branchId
WHERE m.membership = 'Premium'
GROUP BY b.storeAddress.streetAddress, b.storeAddress.city, b.storeAddress.postcode
ORDER BY COUNT(*);
如果使用正确的
JOIN
语法,则会因为缺少
ON
子句而出现错误