在 select 語句中什么情況采用group by
GROUP BY 是分組查詢, 一般 GROUP BY 是和 聚合函數配合使用,你可以想想
你用GROUP BY 按下面A這個字段分組,那其他字段內容不同,變成一對多又改如何顯示呢,比如下面所示
A B
1 aaa
1 bbb
1 ccc
select A,B from table group by A
你說這樣查出來是什么結果,
A B
aaa
1 bbb
ccc
右邊3條如何變成一條,所以需要用到聚合函數,比如
select A,count(B) 數量 from table group by A
這樣的結果就是
A 數量
1 3
group by 有一個原則,就是 select 后面的所有列中,沒有使用聚合函數的列,必須出現在 group by 后面
在SELECT語句中,對查詢結果進行排序的子句是什么?能消除重復行
對查詢結果進行排序的子句 having子句,消除重復行的關鍵字是distinct。
1、having 語法:
SELECT [ ALL | DISTINCT ]{ * | projectItem [, projectItem ]* } FROM tableExpression
[ WHERE booleanExpression ] [ GROUP BY { groupItem [, groupItem ]* } ]
[ HAVING booleanExpression ];
示例:
SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer
HAVING SUM(OrderPrice)<2000
上面語句的意思是從結果中篩選出了總體價格小于2000的商品。
2、distinct 語法:
SELECT DISTINCT 列名稱 FROM 表名稱
示例:SELECT DISTINCT Company FROM Orders
上面語句的意思是對訂單表中的公司進行去重查詢。
擴展資料
SELECT語句返回用指定的條件在一個數據庫中查詢的結果,返回的結果被看作記錄的集合。
語法:
SELECT [predicate] { * | table.* | [table.]field1 [AS alias1] [, [table.]field2 [AS alias2]
[, 。]]} FROM tableexpression [, 。] [IN externaldatabase] [WHERE。 ] [GROUP BY。 ]
[HAVING。 ] [ORDER BY。 ] [WITH OWNERACCESS OPTION]
解釋說明:predicate可選參數,該參數可取值為ALL(缺省值)、DISTINCT、DISTINCTROW 或TOP。如果該參數為ALL,則返回SQL語句中符合條件的全部記錄。
如果為DISTINCT,則省略選擇字段中包含重復數據的記錄;如果為DISTINCTROW,則省略基于整個重復記錄的數據,而不只是基于重復字段的數據。
如果為TOP n(n為一個整數),則返回特定數目的記錄,且這些記錄將落在由 ORDER BY 子句指定的前面或后面的范圍中。
參考資料鏈接:百度百科-SQL數據庫
參考資料鏈接:百度百科-select語句
轉載請注明出處華閱文章網 » 在select語句中