Dalam mysql, anda boleh menggunakan pernyataan SELECT dengan fungsi SUM() dan "GROUP BY" untuk menjumlahkan kumpulan Sintaks ialah "SELECT query field SUM (summation field) AS field FROM table name WHERE condition GROUP. OLEH Mengelompokkan medan satu, mengelompokkan medan dua;".
Persekitaran pengendalian tutorial ini: sistem Windows 10, versi mysql8.0.22, komputer Dell G3.
Cara melakukan jumlah kumpulan dalam mysql
Dalam mysql, anda boleh menggunakan
SELECT 查询字段 SUM(求和字段) AS 字段 FROM 表名 WHERE 条件 GROUP BY 分组字段一,分组字段二;
untuk melaksanakan jumlah kumpulan.
Contohnya seperti berikut:
1) count() mencari bilangan baris dalam lajur tertentu
Ia mudah difahami, dikira (nama lajur) adalah untuk mencari bilangan baris dalam lajur tertentu Bilangan baris dalam lajur Perlu diingat bahawa lajur ini tidak mengira bilangan baris dengan nilai nol. Contoh:
>-- Tanya berapa ramai guru yang ada
>-- Tanya berapa baris yang terdapat dalam jadual guru PILIH KIRAAN(*) DARI guru;
Jika terdapat nilai pendua dalam lajur, kami mengira dan tidak mahu mengira nilai pendua, apa yang patut kita buat? Kita boleh menggunakan berbeza untuk menyelesaikan:
-- 查询成绩表里共有几个学生的成绩 SELECT COUNT(DISTINCT 学号) FROM score;
2) sum() menjumlahkan lajur data
jumlah , yang adalah untuk menjumlahkan nilai lajur tertentu, dan hanya boleh mengira nilai. Contoh:
-- 对所有成绩求和 SELECT SUM(成绩) FROM score;
3) purata() nilai purata dalam lajur
Begitu juga, pengiraan purata Hanya nilai berangka boleh dikira:
-- 对所有成绩求平均值 SELECT AVG(成绩) FROM score;
4) max() mencari nilai maksimum lajur data tertentu, min( ) mencari nilai minimum lajur data tertentu Nilai
-- 获取所有成绩中的最大成绩 SELECT MAX(成绩),MIN(成绩) FROM score;
Pengumpulan
Dalam soalan itu, kami menyebut bahawa kami perlu tahu purata markah setiap subjek, maka kita perlu buat Group.
Dalam SQL, kumpulan mengikut pernyataan boleh mengumpulkan set hasil mengikut satu atau lebih lajur. Contoh:
-- 计算每一科课程的平均成绩 SELECT 课程号,AVG(成绩) FROM score GROUP BY 课程号;
Dalam artikel sebelumnya, kami secara ringkas memperkenalkan tertib pelaksanaan pernyataan SQL: pertama jalankan daripada Jadual mana yang mendapat data, dan kemudian laksanakan penyataan pilih;
Di sini kita mendapatkan data daripada jadual skor dan menggunakan kumpulan demi pernyataan untuk mengumpulkan data mengikut peraturan tertentu; kemudian Kira kiraan() pada hasil terkumpul akhirnya pilih hasil gabungan dan ringkaskan setiap kumpulan hasil pengiraan dalam langkah sebelumnya ke dalam jadual .
Nyatakan syarat untuk syarat pengelompokan
Dalam soalan pertama, adalah perlu untuk "mengira purata markah setiap mata pelajaran dan mendapati bahawa skor purata lebih besar daripada atau sama dengan 80 mata". Dalam dua bahagian di atas, kami mendapat pengiraan Markah purata subjek setiap hari, kini nyatakan syarat untuk skor purata : "lebih daripada atau sama dengan 80 mata" , kami menggunakan mempunyai klausa .
Mempunyai klausa dan klausa mana kedua-duanya memilih data secara bersyarat.
-- 计算平均成绩大于等于80分的课程; SELECT 课程号,AVG(成绩) FROM score GROUP BY 课程号 HAVING AVG(成绩)>=80;
Adakah ini bermakna susunan klausa mempunyai juga berada di hadapan ringkasan hasil pilih? Ya, klausa mempunyai menentukan syarat untuk hasil pengumpulan kumpulan mengikut, seperti memerlukan skor lebih besar daripada atau sama dengan 80. Selepas menapis keputusan, keputusan diringkaskan.
-- 对教师表根据教师姓名排序 SELECT * FROM teacher ORDER BY 教师姓名;
Kami mendapati bahawa nilai null Null berada pada kedudukan pertama, jadi: Lajur yang mengandungi nilai null berada dalam Apabila mengisih, nilai nol akan berada pada permulaan Apabila jumlah data adalah besar dan anda ingin melihat nilai nol, anda boleh menggunakan pengisihan ini.
另外,在补充一个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视频教程
Atas ialah kandungan terperinci Bagaimana untuk mengumpulkan dan menjumlahkan dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Perbezaan utama antara MySQL dan SQLite adalah konsep reka bentuk dan senario penggunaan: 1. MySQL sesuai untuk aplikasi besar dan penyelesaian peringkat perusahaan, menyokong prestasi tinggi dan kesesuaian yang tinggi; 2. SQLITE sesuai untuk aplikasi mudah alih dan perisian desktop, ringan dan mudah dibenamkan.

Indeks dalam MySQL adalah struktur yang diperintahkan satu atau lebih lajur dalam jadual pangkalan data, yang digunakan untuk mempercepat pengambilan data. 1) Indeks meningkatkan kelajuan pertanyaan dengan mengurangkan jumlah data yang diimbas. 2) Indeks B-Tree menggunakan struktur pokok yang seimbang, yang sesuai untuk pertanyaan dan penyortiran pelbagai. 3) Gunakan pernyataan createIndex untuk membuat indeks, seperti createIndexidx_customer_idonorders (customer_id). 4) Indeks komposit boleh mengoptimumkan pertanyaan berbilang lajur, seperti createIndexidx_customer_orderonorders (customer_id, order_date). 5) Gunakan Jelaskan untuk menganalisis rancangan pertanyaan dan elakkan

Menggunakan transaksi dalam MySQL memastikan konsistensi data. 1) Mulakan transaksi melalui starttransaction, dan kemudian laksanakan operasi SQL dan serahkannya dengan komit atau rollback. 2) Gunakan SavePoint untuk menetapkan titik simpan untuk membolehkan rollback separa. 3) Cadangan Pengoptimuman Prestasi termasuk memendekkan masa urus niaga, mengelakkan pertanyaan berskala besar dan menggunakan tahap pengasingan yang munasabah.

Senario di mana PostgreSQL dipilih dan bukannya MySQL termasuk: 1) Pertanyaan Kompleks dan Fungsi SQL Lanjutan, 2) Integriti Data yang ketat dan Pematuhan Asid, 3) Fungsi Spatial Advanced diperlukan, dan 4) Prestasi tinggi diperlukan apabila memproses set data yang besar. PostgreSQL berfungsi dengan baik dalam aspek -aspek ini dan sesuai untuk projek -projek yang memerlukan pemprosesan data yang kompleks dan integriti data yang tinggi.

Keselamatan pangkalan data MySQL dapat dicapai melalui langkah -langkah berikut: 1. 2. Transmisi yang disulitkan: Konfigurasi SSL/TLS untuk memastikan keselamatan penghantaran data. 3. Backup dan Pemulihan Pangkalan Data: Gunakan MySQLDUMP atau MySQLPUMP untuk data sandaran secara kerap. 4. Dasar Keselamatan Lanjutan: Gunakan firewall untuk menyekat akses dan membolehkan operasi pembalakan audit. 5. Pengoptimuman Prestasi dan Amalan Terbaik: Mengambil kira kedua -dua keselamatan dan prestasi melalui pengindeksan dan pengoptimuman pertanyaan dan penyelenggaraan tetap.

Bagaimana untuk memantau prestasi MySQL dengan berkesan? Gunakan alat seperti mysqladmin, showglobalstatus, perconamonitoring dan pengurusan (PMM), dan mysql enterprisemonitor. 1. Gunakan mysqladmin untuk melihat bilangan sambungan. 2. Gunakan showglobalstatus untuk melihat nombor pertanyaan. 3.Pmm menyediakan data prestasi terperinci dan antara muka grafik. 4.MySqLenterPrisemonitor menyediakan fungsi pemantauan yang kaya dan mekanisme penggera.

Perbezaan antara MySQL dan SQLServer adalah: 1) MySQL adalah sumber terbuka dan sesuai untuk sistem web dan tertanam, 2) SQLServer adalah produk komersil Microsoft dan sesuai untuk aplikasi peringkat perusahaan. Terdapat perbezaan yang signifikan antara kedua -dua enjin penyimpanan, pengoptimuman prestasi dan senario aplikasi. Apabila memilih, anda perlu mempertimbangkan saiz projek dan skalabiliti masa depan.

Dalam senario aplikasi peringkat perusahaan yang memerlukan ketersediaan yang tinggi, keselamatan maju dan integrasi yang baik, SQLServer harus dipilih bukannya MySQL. 1) SQLServer menyediakan ciri peringkat perusahaan seperti ketersediaan tinggi dan keselamatan maju. 2) Ia bersepadu dengan ekosistem Microsoft seperti VisualStudio dan PowerBI. 3) SQLServer melakukan pengoptimuman prestasi yang sangat baik dan menyokong jadual yang dioptimumkan memori dan indeks penyimpanan lajur.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),