簡體   English   中英

帶計數,總和和聯接的SQL查詢

[英]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.

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