6.1 集計関数の一覧
SQL で演算子を使用して行のグループ化を使用すると、グループ化されたデータを操作する関数をステートメント内でGROUP BY
使用できます。SELECT
このような関数は集計関数とも呼ばれます。
最も人気のあるもののリストは次のとおりです。
# | 関数 | 説明 |
---|---|---|
1 | カウント() | グループ内の値の数を返します |
2 | 和() | グループ内の値の合計を返します |
3 | MAX() | グループの最大値を返します |
4 | 分() | グループの最小値を返します |
5 | 平均() | グループの平均を返します |
6 | ビットアンド() | すべてのグループ値に対してビット単位の AND を実行します。 |
7 | BIT_OR() | すべてのグループ値に対してビット単位の OR を実行します。 |
8 | BIT_XOR() | すべてのグループ値に対してビット単位の XOR を実行します。 |
9 | GROUP_CONCAT() | すべてのグループ値を 1 つの文字列に連結します |
次に、集計関数を使用した例をいくつか見てみましょう。
6.2 従業員の給与の分析
従業員テーブルから従業員に関する統計を計算してみましょう。
質問 1:当社の従業員は何人いますか?
テーブル内のすべてのレコードの数を調べたい場合は、この に集計関数を使用できますCOUNT
。リクエストは次のようになります。
SELECT COUNT(*) FROM employee
MySQL は応答として数字 6 を返します。この部門には猫を含む 6 人の従業員がいます。わかった。
質問 2:全従業員に月にいくら払っていますか?
この質問に答えるには、全従業員の給与を合計する必要があります。これを行うには、集計関数を使用します。SUM()
リクエストは次のようになります。
SELECT SUM(salary) FROM employee
今回は、どの列の値を集計するかを指定する必要があることに注意してください。給与列を指定しました。テーブル内のすべてのフィールドを単純に合計することはできません。
MySQL は答えとして 461000 という数字を返します。この部門には従業員が 6 人いて、給与は 461,000 です。過度に。
そして最後に 3 番目の質問です。その部門の給与の最高額と最低額はいくらですか? では、平均給与を計算してみましょう。これを行うには、関数MIN
、MAX
および が必要ですAVG
。
今回のクエリはもう少し複雑になり、次のようになります。
SELECT MIN(salary), AVG(salary), MAX(salary)
FROM employee
このクエリの結果は次のようになります。
MIN(給与) | 平均(給与) | MAX(給与) |
---|---|---|
1000 | 76833.3333 | 200000 |
私たちの部門の最低賃金は 1,000 ドルで、非常に良い額です。最高給与は20万ですが、これはディレクターです。
しかし、平均給与が高すぎるため、何らかの方法でコストを最適化する必要があります。別の猫を雇いましょう、それで終わりです:)
GO TO FULL VERSION