簡體   English   中英

GROUP BY Function 計算每行的總匹配數 | SQL/甲骨文

[英]GROUP BY Function Counting Total Matches For Each Row | SQL/Oracle

我正在嘗試查詢我的幾個表,以顯示寵物連鎖店每個分支機構的高級會員數量(計數)(每個分店都有標准和高級會員)和每家商店的地址(地址是由街道+號碼、城市和郵政編碼/郵政編碼組成的結構化類型。

在嘗試創建查詢時,它會不斷計算所有分支機構的高級會員客戶總數,並將其顯示為每個商店/分支機構的計數。

如下圖所示,洛杉磯、舊金山和聖地亞哥分行的高級客戶數均顯示為 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);

查詢結果

首先,您應該使用正確的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子句而得到一個錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM