ホームページ >バックエンド開発 >PHPチュートリアル >値の繰り返し回数を求めるSQLクエリとその対処方法
繰り返し値の数を求める SQL クエリ
テーブル マーク
id 名 pay
1 Zhang San 1000
2 Wang Lei 1200
3 Zhang San 5853
4王五 8574
5 1259
6 Tall 985
====================
重複した値をクエリする方法名前フィールドの SQL の書き方がわかりません。望ましい結果は、Zhang San が複数回、Wang Lei が複数回、Tall Man が複数回登場することです。
また、「group by」の使い方と意味がよくわかりません。どなたか簡単に説明していただけませんか。
------解決策---------
マークグループから名前、カウント(*)を選択してください名前
グループ化キー
によるグループ化は、誰をグループ化するかに基づいています
------解決策-------------- - ---
group by 構文は、指定されたデータ列の各メンバーに従ってクエリ結果をグループ化し、最終的にグループ概要テーブルを取得できます。
SELECT 句の列名は、グループ化列または列関数である必要があります。列関数は、GROUP BY 句で定義されたグループごとに 1 つの結果を返します。
従業員情報テーブルの構造とデータは次のとおりです:
id name 部門給与 edlevel 採用日
1 Zhang San Development Division 2000 3 2009-10-11
2 Li Si Development Division 2500 3 2009-10 -01
3 王武設計部 2600 5 2010-10-02
4 王劉設計部 2300 4 2010-10-03
5 馬斉設計部 2100 4 2010-10-06
6 Zhao Ba 営業部 3000 5 2010-10-05
7 Qian Jiu 営業部 3100 7 2010-10-07
8 Sun Shi 営業部 3500 7 2010-10-06
たとえば, 一覧表示したい 各部門の最高給与の結果を取得するには、SQL ステートメントは次のとおりです:
SELECT DEPT, MAX(SALARY) AS MAXIMUM
FROM STAFF
GROUP BY DEPT
クエリ結果は次のとおりです:
DEPT MAXIMUM
開発部門 2500
設計部門 2600
営業部門 3500
この結果を説明してください:
1. SELECT 内の列名を満たします。 SELECT には GROUP BY DEPT に含まれる列 DEPT があるため、句はグループ化列または列関数である必要があります。
2. 「列関数は、GROUP BY 句で定義されたグループごとに 1 つの結果を返します。」 部門のグループ化に従って、各部門の最大給与を 1 つの結果として返します。
注: MAX(SALARY) は、会社全体ではなく、部門 (GROUP BY 句で定義されたグループ) ごとに計算されます。
-----解決策--------------------------------
sum と max はどちらも数学関数であり、dis 列は文字型です。もちろんエラーが報告されます。
group by means grouping
group by を使用すると、指定された列の内容によってグループ化されます。
group by を使用しない場合、すべてのレコードが 1 つのグループとしてカウントされます