[英]SQL Query With Count, Sum, and JOIN
我在帖子中進行了篩選以找到問題的答案,但是我沒有運氣。 所以我想我將創建一個新的社區,看看社區是否能夠為我提供幫助! 如果我在描述事物時沒有使用正確的SQL術語,請原諒我。
在此問題中的三個表。 表A是沒有依賴性的“主”表。 表B具有對表A的外鍵引用。表C具有對表B的外鍵引用。
此查詢有兩個目標。 首先是在表C中總結一個字段,比如說fieldC。必須滿足的唯一條件是A中的一個字段,比如說fieldA,必須等於,比如說X。公平地說,此解決方案很簡單:
SELECT Sum(C.fieldC) FROM C
INNER JOIN B
ON C.foreign_keyB = B.id
INNER JOIN A
ON B.foreign_keyA = A.id
WHERE fieldA = X
好的,現在是第二個目標:我想計算表A中與fieldA = X匹配的行數。
SELECT Sum(C.fieldC), Count(A.id) FROM C
INNER JOIN B
ON C.foreign_keyB = B.id
INNER JOIN A
ON B.foreign_keyA = A.id
WHERE fieldA = X
但是我得到的總數遠非如此。 我在這里犯了一些明顯的錯誤嗎? 感謝大家的幫助! =)
在這種情況下,您可以使用count distinct
來解決問題:
SELECT Sum(C.fieldC), Count(distinct A.id)
FROM C
INNER JOIN B
ON C.foreign_keyB = B.id
INNER JOIN A
ON B.foreign_keyA = A.id
WHERE fieldA = X
如果要對A中的字段執行其他操作(例如平均值或總和),則解決方案會更加復雜。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.