Rumah > pangkalan data > tutorial mysql > Apakah yang dimaksudkan dengan kumpulan?

Apakah yang dimaksudkan dengan kumpulan?

青灯夜游
Lepaskan: 2023-03-09 18:37:11
asal
31448 orang telah melayarinya

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;
Salin selepas log masuk

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;
Salin selepas log masuk

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;
Salin selepas log masuk

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;
Salin selepas log masuk

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;
Salin selepas log masuk

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;
Salin selepas log masuk

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;
Salin selepas log masuk

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);
Salin selepas log masuk

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;
Salin selepas log masuk

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;
Salin selepas log masuk

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

Apakah yang dimaksudkan dengan kumpulan?

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

SELECT 
    status, COUNT(*)
FROM
    orders
GROUP BY status DESC;
Salin selepas log masuk

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

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan