cari
Rumahpangkalan datatutorial mysqlApakah yang dimaksudkan dengan kumpulan?

Apakah yang dimaksudkan dengan kumpulan?

Mar 09, 2023 pm 06:37 PM
mysqlgroup by

kumpulan dengan bermaksud "kueri kumpulan", yang boleh difahami sebagai "kumpulan (Kumpulan) mengikut (oleh) peraturan tertentu"; dan kemudian melakukan pemprosesan data pada beberapa kawasan kecil. Dalam MySQL, GROUP BY ialah klausa pilihan bagi pernyataan SELECT yang digunakan untuk mengumpulkan hasil pertanyaan berdasarkan satu atau lebih medan Ia mengurangkan bilangan baris dalam set hasil.

Apakah yang dimaksudkan dengan kumpulan?

Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.

kumpulan dengan bermaksud "pertanyaan kumpulan".

Pernyataan Kumpulan Mengikut secara literal bermaksud "Kumpulan mengikut (mengikut) peraturan tertentu" dalam bahasa Inggeris. Fungsinya adalah untuk membahagikan set data kepada beberapa kawasan kecil melalui peraturan tertentu, dan kemudian melakukan pemprosesan data pada beberapa kawasan kecil.

MySQL menggunakan pertanyaan GROUP BY group

Dalam MySQL, kata kunci GROUP BY boleh mengumpulkan hasil pertanyaan mengikut satu atau lebih medan.

Klausa GROUP BY mengumpulkan set baris ke dalam kumpulan kecil rekod baris ringkasan mengikut nilai lajur atau ungkapan. Klausa GROUP BY mengembalikan satu baris untuk setiap kumpulan. Dalam erti kata lain, ia mengurangkan bilangan baris dalam set hasil.

Klausa GROUP BY sering digunakan dengan fungsi agregat seperti SUM, AVG, MAX, MIN dan COUNT. Fungsi agregat digunakan dalam klausa SELECT untuk mengira maklumat tentang setiap kumpulan.

Klausa GROUP BY ialah klausa pilihan bagi pernyataan SELECT. Berikut ialah sintaks klausa GROUP BY:

SELECT 
    c1, c2,..., cn, aggregate_function(ci)
FROM
    table
WHERE
    where_conditions
GROUP BY c1 , c2,...,cn;

Klausa GROUP BY mesti muncul selepas klausa FROM dan WHERE. Mengikuti kata kunci GROUP BY ialah senarai lajur atau ungkapan yang dipisahkan koma yang akan digunakan sebagai syarat untuk mengumpulkan baris.

MySQL GROUP BY contoh

1. Simple MySQL GROUP BY contoh

Mari kita lihat contoh pangkalan data ( yiibaidb ), strukturnya adalah seperti berikut -

mysql> desc orders;

Apakah yang dimaksudkan dengan kumpulan?

Dengan mengandaikan bahawa anda ingin mengumpulkan nilai status pesanan ke dalam subkumpulan, anda perlu menggunakan GROUP OLEH klausa Dan tentukan untuk melaksanakan pengumpulan mengikut lajur status, pertanyaan berikut:

SELECT 
    status
FROM
    orders
GROUP BY status;

Laksanakan pernyataan pertanyaan di atas dan dapatkan keputusan berikut -

Apakah yang dimaksudkan dengan kumpulan?

Seperti yang anda lihat, GROUP Nilai status yang dikembalikan oleh klausa BY adalah unik. Ia berfungsi seperti operator DISTINCT, seperti yang ditunjukkan dalam pertanyaan berikut:

SELECT DISTINCT
    status
FROM
    orders;

Melaksanakan pernyataan pertanyaan di atas, kami mendapat hasil berikut -

Apakah yang dimaksudkan dengan kumpulan?

2. MySQL GROUP BY dan fungsi agregat

Anda boleh menggunakan fungsi agregat untuk melakukan pengiraan pada sekumpulan baris dan mengembalikan satu nilai. Klausa GROUP BY sering digunakan dengan fungsi agregat untuk melakukan pengiraan bagi setiap kumpulan dan mengembalikan satu nilai.

Sebagai contoh, jika anda ingin mengetahui bilangan pesanan dalam setiap status, anda boleh menggunakan fungsi COUNT dan pernyataan pertanyaan klausa GROUP BY, seperti yang ditunjukkan di bawah:

SELECT 
    status, COUNT(*) AS total_number
FROM
    orders
GROUP BY status;

Laksanakan pernyataan pertanyaan di atas dan dapatkan keputusan berikut-

Apakah yang dimaksudkan dengan kumpulan?

Sila rujuk jadual pesanan dan butiran pesanan berikut, rajah ER mereka adalah seperti berikut-

Apakah yang dimaksudkan dengan kumpulan?

Untuk mendapatkan jumlah keseluruhan semua pesanan mengikut status, anda boleh menggunakan jadual butiran pesanan untuk menyambungkan jadual pesanan, dan gunakan fungsi SUM untuk mengira jumlah keseluruhan. Sila rujuk pertanyaan berikut:

SELECT 
    status, SUM(quantityOrdered * priceEach) AS amount
FROM
    orders
        INNER JOIN
    orderdetails USING (orderNumber)
GROUP BY status;

Melaksanakan pertanyaan di atas memberikan hasil berikut -

Apakah yang dimaksudkan dengan kumpulan?

Begitu juga, pertanyaan berikut mengembalikan nombor pesanan dan bilangan setiap pesanan sekaligus.

SELECT 
    orderNumber,
    SUM(quantityOrdered * priceEach) AS total
FROM
    orderdetails
GROUP BY orderNumber;

Lakukan pertanyaan di atas dan dapatkan hasil berikut -

Apakah yang dimaksudkan dengan kumpulan?

3. MySQL GROUP BY contoh ekspresi

Selain lajur, baris boleh dikumpulkan mengikut ungkapan. Pertanyaan berikut mendapat jumlah jualan setahun.

SELECT 
    YEAR(orderDate) AS year,
    SUM(quantityOrdered * priceEach) AS total
FROM
    orders
        INNER JOIN
    orderdetails USING (orderNumber)
WHERE
    status = 'Shipped'
GROUP BY YEAR(orderDate);

Lakukan pertanyaan di atas dan dapatkan hasil berikut-

Apakah yang dimaksudkan dengan kumpulan?

Dalam contoh ini, kami menggunakan fungsi YEAR untuk mengekstrak tahun daripada pesanan data tarikh (orderDate). Hanya pesanan dengan status Dihantar disertakan. Ambil perhatian bahawa ungkapan yang muncul dalam klausa SELECT mestilah sama seperti dalam klausa GROUP BY.

MySQL GROUP BY dan HAVING clause

Anda boleh menggunakan HAVING clause untuk menapis kumpulan yang dikembalikan oleh GROUP BY clause. Pertanyaan berikut menggunakan klausa HAVING untuk memilih jumlah jualan tahunan dari 2013 dan seterusnya.

SELECT 
    YEAR(orderDate) AS year,
    SUM(quantityOrdered * priceEach) AS total
FROM
    orders
        INNER JOIN
    orderdetails USING (orderNumber)
WHERE
    status = 'Shipped'
GROUP BY year
HAVING year > 2013;

Lakukan pertanyaan di atas dan dapatkan hasil berikut -

Apakah yang dimaksudkan dengan kumpulan?

GROUP BY子句:MySQL与标准SQL

标准SQL不允许使用GROUP BY子句中的别名,但MySQL支持此选项。以下查询从订单日期提取年份,并对每年的订单进行计数。该year用作表达式YEAR(orderDate)的别名,它也用作GROUP BY子句中的别名,此查询在标准SQL中无效。

参考以下查询 -

SELECT 
    YEAR(orderDate) AS year, COUNT(orderNumber)
FROM
    orders
GROUP BY year;

执行上面查询,得到以下结果 -

Apakah yang dimaksudkan dengan kumpulan?

MySQL还允许您以升序或降序(标准SQL不能提供)对组进行排序。默认顺序是升序。例如,如果要按状态获取订单数量并按降序对状态进行排序,则可以使用带有DESC的GROUP BY子句,如下查询语句:

SELECT 
    status, COUNT(*)
FROM
    orders
GROUP BY status DESC;

执行上面查询,得到以下结果 -

1Apakah yang dimaksudkan dengan kumpulan?

请注意,在GROUP BY子句中使用DESC以降序对状态进行排序。我们还可以在GROUP BY子句中明确指定ASC,按状态对分组进行升序排序。

【相关推荐:mysql视频教程

Atas ialah kandungan terperinci Apakah yang dimaksudkan dengan kumpulan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Apakah perbezaan sintaks antara MySQL dan dialek SQL yang lain?Apakah perbezaan sintaks antara MySQL dan dialek SQL yang lain?Apr 27, 2025 am 12:26 AM

Mysqldiffersfromothersqldialectsyntaxforlimit, auto-increment, stringcomparison, subqueries, andperformanceanalysis.1) mySqlusSlimit, whilesqlserverestopandoracleusesusesrownum.2)

Apakah pemisahan MySQL?Apakah pemisahan MySQL?Apr 27, 2025 am 12:23 AM

Pemisahan MySQL meningkatkan prestasi dan memudahkan penyelenggaraan. 1) Bahagikan jadual besar ke dalam kepingan kecil dengan kriteria tertentu (seperti julat tarikh), 2) secara fizikal membahagikan data ke dalam fail bebas, 3) MystQL boleh memberi tumpuan kepada partisi yang berkaitan apabila pertanyaan, 4) Pengoptimal pertanyaan boleh melangkau partisi yang tidak berkaitan, 5) Memilih strategi partisi yang tepat dan mengekalkannya secara tetap adalah kunci.

Bagaimana anda memberikan dan membatalkan keistimewaan di MySQL?Bagaimana anda memberikan dan membatalkan keistimewaan di MySQL?Apr 27, 2025 am 12:21 AM

Bagaimana untuk memberikan dan membatalkan keizinan di MySQL? 1. Gunakan pernyataan geran untuk memberikan kebenaran, seperti GrantallPrivileGeSondatabase_name.to'username'@'host '; 2. Gunakan pernyataan membatalkan untuk membatalkan kebenaran, seperti RevokeAllPrivileGeSondatabase_name.from'username'@'host 'untuk memastikan komunikasi tepat pada masanya perubahan kebenaran.

Terangkan perbezaan antara enjin penyimpanan InnoDB dan myisam.Terangkan perbezaan antara enjin penyimpanan InnoDB dan myisam.Apr 27, 2025 am 12:20 AM

InnoDB sesuai untuk aplikasi yang memerlukan sokongan transaksi dan kesesuaian yang tinggi, sementara myisam sesuai untuk aplikasi yang memerlukan lebih banyak bacaan dan kurang menulis. 1.InnoDB menyokong kunci transaksi dan peringkat bank, sesuai untuk sistem e-dagang dan perbankan. 2.Myisam menyediakan bacaan dan pengindeksan yang cepat, sesuai untuk sistem pengurusan blog dan kandungan.

Apakah pelbagai jenis gabungan dalam MySQL?Apakah pelbagai jenis gabungan dalam MySQL?Apr 27, 2025 am 12:13 AM

Terdapat empat jenis utama dalam MySQL: innerjoin, leftjoin, rightjoin dan fullouterjoin. 1.InnerJoin Mengembalikan semua baris dalam dua jadual yang memenuhi syarat gabungan. 2.LeftJoin Mengembalikan semua baris di meja kiri, walaupun tidak ada baris yang sepadan di meja yang betul. 3. Rightjoin bertentangan dengan leftjoin dan mengembalikan semua baris di meja kanan. 4.FullouterJoin Mengembalikan semua baris dalam dua jadual yang memenuhi atau tidak memenuhi syarat gabungan.

Apakah enjin penyimpanan yang berbeza di MySQL?Apakah enjin penyimpanan yang berbeza di MySQL?Apr 26, 2025 am 12:27 AM

MysqloffersvariousstorageEngines, eachSuitedfordifferentusecases: 1) innodbisidealforapplicationsNeedingacidcomplianceandhighconcurrency, supportingtransactionsandforeignkeys.2) myisamisbestforread-heavyworkloads, lacktransactive.2)

Apakah beberapa kelemahan keselamatan biasa di MySQL?Apakah beberapa kelemahan keselamatan biasa di MySQL?Apr 26, 2025 am 12:27 AM

Kelemahan keselamatan biasa dalam MySQL termasuk suntikan SQL, kata laluan yang lemah, konfigurasi kebenaran yang tidak betul, dan perisian yang tidak dimulakan. 1. Suntikan SQL boleh dicegah dengan menggunakan pernyataan pra -proses. 2. Kata laluan yang lemah boleh dielakkan dengan secara paksa menggunakan strategi kata laluan yang kuat. 3. 4. Perisian yang tidak ditetapkan boleh ditampal dengan kerap memeriksa dan mengemas kini versi MySQL.

Bagaimanakah anda dapat mengenal pasti pertanyaan perlahan di MySQL?Bagaimanakah anda dapat mengenal pasti pertanyaan perlahan di MySQL?Apr 26, 2025 am 12:15 AM

Mengenal pasti pertanyaan perlahan dalam MySQL boleh dicapai dengan membolehkan log pertanyaan perlahan dan menetapkan ambang. 1. Dayakan log pertanyaan perlahan dan tetapkan ambang. 2. Lihat dan menganalisis fail log pertanyaan perlahan, dan gunakan alat seperti mysqldumpslow atau pt-que-digest untuk analisis mendalam. 3. Mengoptimumkan pertanyaan perlahan dapat dicapai melalui pengoptimuman indeks, penulisan pertanyaan dan mengelakkan penggunaan pilih*.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).