mysql では、SUM() 関数と「GROUP BY」を指定した SELECT ステートメントを使用してグループの合計を実行できます。構文は「SELECT クエリ フィールド SUM (合計フィールド) AS フィールド FROM テーブル名 WHERE 条件」です。 GROUP BY フィールド 1 をグループ化し、フィールド 2 をグループ化します。".
このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。
mysql でグループ合計を実行する方法
mysql では、
SELECT 查询字段 SUM(求和字段) AS 字段 FROM 表名 WHERE 条件 GROUP BY 分组字段一,分组字段二;
を使用してグループ合計を実行できます。
例は次のとおりです。
1) count() は、特定の列の行数を検索します。
count は理解しやすいです。 (列名) は、特定の列の行数を調べるための列の行数です。この列では null 値を持つ行の数はカウントされないことに注意してください。例:
>-- 教師が何人いるかをクエリします。
>-- Teacher テーブルにある行数をクエリします。 SELECT COUNT(*) FROM Teacher;
列に重複する値がある場合、 をカウントしますが、重複する値はカウントしたくありません## #、 私たちは何をすべきか?解決するには、distinct を使用できます。
-- 查询成绩表里共有几个学生的成绩 SELECT COUNT(DISTINCT 学号) FROM score;
2) sum() は、データの特定の列
sum を合計します。列内の値を合計するには、数値のみを計算できます。例:-- 对所有成绩求和 SELECT SUM(成绩) FROM score;
3) avg() は特定の列の値を平均します
同様に、平均は計算される 数値を計算する:-- 对所有成绩求平均值 SELECT AVG(成绩) FROM score;
##4) max() は特定のデータ列の最大値を検索し、min() は特定のデータ列の最小値を検索します。データ列
-- 获取所有成绩中的最大成绩 SELECT MAX(成绩),MIN(成绩) FROM score;
-- 计算每一科课程的平均成绩 SELECT 课程号,AVG(成绩) FROM score GROUP BY 课程号;
スコア テーブルからデータを取得し、group by ステートメントを使用して特定のルールに従ってデータをグループ化します。結果に対して count() を計算するグループで、最後に結合された結果を選択し、前のステップの計算結果の各セットをテーブル に要約します。
グループ化条件の条件を指定します最初の問題では、「各科目の平均点を計算し、その平均点が80点以上になるようにする」ことが求められています。上の 2 つのセクションでは、毎日の科目の平均スコアを計算しました。次に、平均スコアの条件: 「80 点以上」 を指定します。 を使用します。句を持つ。
have 句と where 句はどちらもデータの条件付き選択です。違いは、where を summary 関数で使用できないことです。
-- 计算平均成绩大于等于80分的课程; SELECT 课程号,AVG(成绩) FROM score GROUP BY 课程号 HAVING AVG(成绩)>=80;それは、have 句の順序も選択結果の概要の前にあるという意味ですか?はい、having 句は、80 以上のスコアを必要とするなど、group by のグループ化結果の条件を指定します。結果をフィルタリングした後、結果が要約されます。
-- 对教师表根据教师姓名排序 SELECT * FROM teacher ORDER BY 教师姓名;
NULL 値を含む列は、次の場合にソートされます。ソートすると、NULL 値が先頭になります。 データ量が多く、NULL 値を確認したい場合は、このソートを使用できます。
另外,在补充一个limit语句,从查询结果中取出指定行,比如,我们如果从刚才的查询结果中只取第一行:
-- 计算平均成绩大于等于80分的课程并根据成绩降序排,并获取第一行 SELECT 课程号,AVG(成绩) FROM score GROUP BY 课程号 HAVING AVG(成绩)>=80 ORDER BY AVG(成绩) DESC LIMIT 1;
接下来我们进行一个总结。
用SQL解决业务问题分析思路
简单来说:明确问题,将问题翻译成大白话,逐步进行拆解,并写出分析思路和对应的SQL思路。
1) 明确问题,将问题翻译成大白话:
“计算各科的平均成绩并且得出平均成绩大于等于80分的课程并降序排列”翻译成大白话就是:
“计算每一门课程的平均成绩,然后根据得出的结果,进行大于等于80分的条件查询,对查询结果进行降序排列”。
2) 逐步进行拆解,并写出分析思路和对应的SQL思路:
① 对课程号进行分组,计算每一门课程的平均成绩;
② 对①的结果指定条件“>=80”;
③ 对②的结果进行降序排列;
我们可以把拆解后的思路套用到下方的公式中:
select 查询结果 from 从那张表中查找数据 where 查询条件(运算符、模糊查询) group by 分组(每个) having 对分组结果指定条件 order by 对查询结果排序 limit 从查询结果中取出指定行;
试一下吧:
select 查询结果[课程号,avg(成绩)] from 从那张表中查找数据[成绩表score] where 查询条件(运算符、模糊查询)[No] group by 分组(每个)[课程号] having 对分组结果指定条件[avg(成绩)>=80] order by 对查询结果排序[avg(成绩)desc] limit 从查询结果中取出指定行;[No]
这样子,问题是不是就迎刃而解呢?
推荐学习:mysql视频教程
以上がmysqlでグループ化して合計する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

MySQLのパフォーマンスを効果的に監視する方法は? MySqladmin、ShowGlobalStatus、PerconAmonitoring and Management(PMM)、MySQL EnterpriseMonitorなどのツールを使用します。 1. mysqladminを使用して、接続の数を表示します。 2。showglobalstatusを使用して、クエリ番号を表示します。 3.PMMは、詳細なパフォーマンスデータとグラフィカルインターフェイスを提供します。 4.mysqlenterprisemonitorは、豊富な監視機能とアラームメカニズムを提供します。

MySQLとSQLServerの違いは次のとおりです。1)MySQLはオープンソースであり、Webおよび埋め込みシステムに適しています。2)SQLServerはMicrosoftの商用製品であり、エンタープライズレベルのアプリケーションに適しています。ストレージエンジン、パフォーマンスの最適化、アプリケーションシナリオの2つには大きな違いがあります。選択するときは、プロジェクトのサイズと将来のスケーラビリティを考慮する必要があります。

高可用性、高度なセキュリティ、優れた統合を必要とするエンタープライズレベルのアプリケーションシナリオでは、MySQLの代わりにSQLServerを選択する必要があります。 1)SQLServerは、高可用性や高度なセキュリティなどのエンタープライズレベルの機能を提供します。 2)VisualStudioやPowerbiなどのMicrosoftエコシステムと密接に統合されています。 3)SQLSERVERは、パフォーマンスの最適化に優れた機能を果たし、メモリが最適化されたテーブルと列ストレージインデックスをサポートします。

mysqlManagesCharacterSetSetSetsAndCollations ByUSINGUTF-8ASTHEDEDEFAULT、CONFIGURATIONATDATABASE、TABLE、ANDCOLUMNLEVELS、ANDREQUIRINGCAREACTERSETANDCOLLATIONSFORADABASE.2

MySQLトリガーは、特定のデータ操作が実行されたときに一連の操作を実行するために使用されるテーブルに関連付けられた自動的に実行されたストアドプロシージャです。 1)定義と機能のトリガー:データ検証、ロギングなどに使用。2)動作原則:それは前後に分割され、行レベルのトリガーをサポートします。 3)使用例:給与の変更を記録したり、在庫を更新したりするために使用できます。 4)デバッグスキル:ShowTriggersとShowCreatetriggerコマンドを使用します。 5)パフォーマンスの最適化:複雑な操作を避け、インデックスを使用し、トランザクションを管理します。

MySQLでユーザーアカウントを作成および管理する手順は次のとおりです。1。ユーザーの作成:createUser'newuser '@' localhost'identifidedby'password 'を使用します。 2。許可を割り当てる:grantselect、insert、updateonmydatabase.to'newuser'@'localhost 'を使用します。 3.許可エラーを修正:Revokeallprivilegesonmydatabase.from'newuser'@'localhost 'を使用します。次に、許可を再割り当てします。 4。最適化権限:Showgraを使用します

MySQLは、迅速な開発や中小規模のアプリケーションに適していますが、Oracleは大規模な企業や高可用性のニーズに適しています。 1)MySQLはオープンソースで使いやすく、Webアプリケーションや中小企業に適しています。 2)Oracleは強力で、大企業や政府機関に適しています。 3)MySQLはさまざまなストレージエンジンをサポートし、Oracleは豊富なエンタープライズレベルの機能を提供します。

他のリレーショナルデータベースと比較したMySQLの欠点には次のものがあります。1。パフォーマンスの問題:大規模なデータを処理する際にボトルネックに遭遇する可能性があり、PostgreSQLは複雑なクエリとビッグデータ処理でより良いパフォーマンスを発揮します。 2。スケーラビリティ:水平スケーリング能力は、Google SpannerやAmazon Auroraほど良くありません。 3。機能的な制限:高度な機能におけるPostgreSQLやOracleほど良くないため、一部の関数では、より多くのカスタムコードとメンテナンスが必要です。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 中国語版
中国語版、とても使いやすい

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

メモ帳++7.3.1
使いやすく無料のコードエディター

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
