php group by 求和,GROUP BY 求合计、平均值、最大最小值、数据件数
使用GROUP?BY可以取得以下函數值:SUM?合計值
MAX?最大値
MIN?最小値
AVG?平均値
COUNT?數據件數
◎計算合計值【例1】
SELECT?ProductID,?Sum(Quantity)
FROM?OrderDetails
GROUP?BY?ProductID
「GROUP?BY」后跟計算合計值時的key
「SELECT」句中可以指定復數個函數
【例2】
SELECT?ProductID,?Avg(UnitPrice),?Sum(Quantity)
FROM?OrderDetails
GROUP?BY?ProductID
◎「GROUP?BY」句的限制
「SELECT」句中只能指定GROUP?BY中指定的列和函數。
下面是錯誤的SQL句例子【例3】
SELECT?ProductID,?UnitPrice,?Sum(Quantity)
FROM?OrderDetails
GROUP?BY?ProductID如果要顯示UnitPrice、必須將UnitPrice加到GROUP?BY句中。【例4】
SELECT?ProductID,?UnitPrice,?Sum(Quantity)
FROM?OrderDetails
GROUP?BY?ProductID,?UnitPrice但是用例4中的SQL進行檢索、如果相同ProductID存在不同的UnitPrice的話、一個產品將會被分成幾行,得到的不是想要的結果。
◎列名的指定「AS」
使用函數所得的結果中列名將不會被顯示。可以用例5的SQL進行列名指定。【例5】
SELECT?ProductID?AS?"產品ID",?Sum(Quantity)?AS?"個數合計"
FROM?OrderDetails
GROUP?BY?ProductID
◎只對特定的行進行合計
除了使用「WHERE」句進行條件指定外、GROUP?BY句還可以使用「HAVING」句指定條件。
例、只取得個數合計在100個以上的產品:
【例6】
SELECT?ProductID?AS?"產品ID",?Sum(Quantity)?AS?"個數合計"
FROM?OrderDetails
GROUP?BY?ProductID
HAVING?Sum(Quantity)?>=?100與「WHERE」句不同的是「HAVING」中指定的抽出條件是函數條件。并且可以使用SELECT句中沒有指定的函數。
【例7】
SELECT?ProductID?AS?"產品ID",?Sum(Quantity)?AS?"個數合計"
FROM?OrderDetails
GROUP?BY?ProductID
HAVING?Count(ProductID)?>=?5例7中只取得有過5次以上訂貨的產品。
總結
以上是生活随笔為你收集整理的php group by 求和,GROUP BY 求合计、平均值、最大最小值、数据件数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 语义解析,有关语义分析的文章推荐
- 下一篇: 如何给h2添加php标记,如何为所有h2