使用GROUP BY當我們做出這樣的SQL請求:對於一些聚合函數爲什麼我們在SQL
SELECT attr1, attr2, AGGR(*)
FROM SomeTable
GROUP BY attr1, attr2
,我們必須包括一個GROUP BY子句和列表attR1和attR2位在裏面。我的問題是:爲什麼SQL數據庫管理系統本身不這樣做?
使用GROUP BY當我們做出這樣的SQL請求:對於一些聚合函數爲什麼我們在SQL
SELECT attr1, attr2, AGGR(*)
FROM SomeTable
GROUP BY attr1, attr2
,我們必須包括一個GROUP BY子句和列表attR1和attR2位在裏面。我的問題是:爲什麼SQL數據庫管理系統本身不這樣做?
因爲你可以通過attr1
希望集團,attr2
和attr3
,即使你在實際attr3
值本身沒有興趣。
換句話說,您可能需要按非合併列進行分組,但這只是最低限度。沒有什麼能夠阻止你按照查詢中實際包含的列進行分組。
而且,由於查詢評估者不知道你想要什麼(或者它希望你遵循相關的標準),它可能認爲要堅持你明確地聲明它是安全的。
因爲sql中有兩個函數類型 - 單個函數&組函數。如果你想訪問組數據,那麼你必須調用'按組'功能類型。
例如,假設您有一個包含'deptno'列的組織的表。現在,如果你想要統計每個部門的'沒有員工'。然後通過deptno調用count(*).... group。 結果將顯示每個組中的員工數量。
GROUP BY語句與聚合函數一起使用,以按一個或多個列對結果集進行分組。
我不知道你在問什麼。 –
1)逗號! 2)它如何知道使用哪個字段? –
谷歌將爲您提供更好的答案我認爲 –