假設我有一個具有屬性的表Tab1
- a1
,a2
,...等。這些屬性都不是唯一的。GROUP BY如何工作?
以下查詢的性質是什麼?它會一直返回一行嗎?
SELECT a1, a2, sum(a3) FROM Tab1 GROUP BY a1, a2
假設我有一個具有屬性的表Tab1
- a1
,a2
,...等。這些屬性都不是唯一的。GROUP BY如何工作?
以下查詢的性質是什麼?它會一直返回一行嗎?
SELECT a1, a2, sum(a3) FROM Tab1 GROUP BY a1, a2
GROUP BY
爲GROUP BY
字段的每個唯一組合返回一行。因此,在您的示例中,在Tab1
行中發生的每個不同組合(a1, a2)
都會導致查詢中的一行表示具有按字段值組合的給定行的行組。在每個組的成員上計算像SUM()
這樣的聚合函數。
GROUP BY
返回一行用於GROUP BY
子句中的字段的每個唯一組合。爲確保只有一行,您將不得不使用聚合函數 - COUNT
,SUM
,MAX
- 沒有GROUP BY
子句。
GROUP BY
將所有相同的記錄分組。
SELECT COUNT(ItemID), City
FROM Orders
GROUP BY City;
----------------------------------------
13 Sacrmento
23 Dallas
87 Los Angeles
5 Phoenix
如果不按City
它只會顯示ItemID
總數。
它將返回一行每個唯一組合(或組)的a1和a2。如果只有一個唯一組合,則只能獲得一行。 –
總和會告訴你每組中有多少行結束=) – jadarnel27