Rumah pangkalan data tutorial mysql mysql数据分组:过滤分组

mysql数据分组:过滤分组

May 09, 2017 pm 01:48 PM

mysql过滤分组

除了能用group by分组数据外,MySQL还允许过滤分组,规定包括哪些分组,排除哪些分组。例如,可能想要列出至少有两个订单的所有顾客。为得出这种数据,必须基于完整的分组而不是个别的进行过滤。

我们已经看到了where子句的作用。但是,在这个例子中where不能完成任务,因为where过滤指定的是行而不是分组。事实上,where没有分组概念。

那么,不使用where使用什么呢?MySQL为此目的提供了另外的子句,那就是having子句。having非常类似于where。事实上,目前为止所学过的所有类型的where子句都可以用having来替代。唯一的差别是where过滤行,而having过滤分组。

注意:having支持所有的where操作符。

那么,怎么过滤分组呢?请看下面的例子:

输入:

select cust_id,count(*) as orders from orders group by cust_id having count(*) >= 2;
Salin selepas log masuk

输出:

QQ截图20170509101253.png

分析:这条select语句的前3行类似于上面的语句。最后一行增加了having子句,它过滤count(*>)>=2(两个以上的订单)的那些分组。

正如所见,这里where子句不起作用,因为过滤是基于分组聚集值而不是特定行值的。

having和where的差别:这里有另一种理解方法,where在数据分组前进行过滤,having在数据分组后进行过滤。这是一个重要的区别,where排除的行不包括在分组中。这可能会改变计算值,从而影响having子句中基于这些值过滤掉的分组。

那么,有没有在一条语句中同时使用where和having子句的需要呢?事实上,确实有。假如想进一步过滤上面的语句,使它返回过去12个月内具有两个以上的顾客。为达到这一点,可增加一条where子句,过滤出去12个月内下过的订单。然后再增加having子句过滤出具有两个以上订单的分组。

为更好的理解,请看下面的例子,它列出具有2个(含)以上、价格为10(含)以上的产品供应商:

输入:

select vend_id,count(*) as num_prods from products where prod_price >= 10 group by vend_id having count(*) >=2;
Salin selepas log masuk

输出:

QQ截图20170509101302.png

分析:这条语句中,第一行是使用了聚集函数的基本 SELECT ,它与前面的例子很相像。 WHERE 子句过滤所有 prod_price 至少为 10 的行。然后按 vend_id 分组数据, HAVING 子句过滤计数为 2 或 2 以上的分组。

如果没有 WHERE 子句,将会多检索出两行(供应商 1002 ,销售的所有产品价格都在 10 以下;供应商 1001 ,销售3个产品,但只有一个产品的价格大于等于 10 ):

输入:select vend_id,count(*) as num_prods from products group by  vend_id having count(*) >=2;

输出:

QQ截图20170509133420.png

【相关推荐】

  1. mysql数据分组和排序及SELECT子句顺序

  2. mysql数据分组:创建分组

Atas ialah kandungan terperinci mysql数据分组:过滤分组. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

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

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menggunakan Vue dan Element-UI untuk mengumpulkan dan meringkaskan data Cara menggunakan Vue dan Element-UI untuk mengumpulkan dan meringkaskan data Jul 21, 2023 pm 02:37 PM

Cara menggunakan Vue dan Element-UI untuk mengumpulkan dan meringkaskan data Dalam pembangunan bahagian hadapan, kami sering menghadapi situasi di mana kami perlu mengumpulkan dan meringkaskan data. Vue ialah rangka kerja JavaScript yang sangat popular, dan Element-UI ialah pustaka komponen berdasarkan Vue Ia menyediakan set kaya komponen UI yang boleh membantu kami membina halaman dengan cepat. Artikel ini akan memperkenalkan cara menggunakan Vue dan Element-UI untuk mengumpulkan dan meringkaskan data, dan menggambarkannya dengan contoh kod. Kerja persediaan

Cara menggunakan vue dan Element-plus untuk mengumpulkan dan mengisih data Cara menggunakan vue dan Element-plus untuk mengumpulkan dan mengisih data Jul 18, 2023 am 10:39 AM

Cara menggunakan Vue dan ElementPlus untuk mengumpulkan dan mengisih data Vue ialah rangka kerja JavaScript yang popular yang boleh membantu kami membina aplikasi bahagian hadapan. ElementPlus ialah perpustakaan komponen desktop berdasarkan Vue Ia menyediakan set komponen UI yang kaya, membolehkan kami membina antara muka yang cantik dan mesra pengguna. Dalam artikel ini, kami akan meneroka cara menggunakan Vue dan ElementPlus untuk mengumpulkan dan mengisih data. Pertama, kita perlu menyediakan a

Bagaimana untuk mengoptimumkan kecekapan pengisihan data dan pengumpulan data dalam PHP dan MySQL melalui indeks? Bagaimana untuk mengoptimumkan kecekapan pengisihan data dan pengumpulan data dalam PHP dan MySQL melalui indeks? Oct 15, 2023 pm 04:00 PM

Bagaimana untuk mengoptimumkan kecekapan pengisihan data dan pengumpulan data dalam PHP dan MySQL melalui indeks? Dalam proses membangunkan aplikasi web, selalunya perlu mengisih dan mengumpulkan data. Untuk pengisihan data dan operasi pengumpulan data antara PHP dan MySQL, kami boleh mengoptimumkan kecekapannya melalui indeks. Indeks ialah struktur data yang digunakan untuk mempercepatkan pengambilan semula data. Ia mempercepatkan operasi pengisihan, pengumpulan dan carian pada data. Di bawah ini kami akan memperkenalkan cara mengoptimumkan pengisihan data dan pengumpulan data PHP dan MySQL melalui indeks.

ECharts histogram (multidimensi): cara memaparkan pengumpulan dan perbandingan data ECharts histogram (multidimensi): cara memaparkan pengumpulan dan perbandingan data Dec 18, 2023 pm 12:52 PM

Histogram ECharts (multidimensi): Cara memaparkan pengumpulan dan perbandingan data memerlukan contoh kod khusus ECharts ialah perpustakaan visualisasi sumber terbuka berdasarkan JavaScript, digunakan untuk memaparkan pelbagai jenis carta data. Histogram ialah kaedah visualisasi data biasa yang boleh digunakan untuk memaparkan pengelompokan dan perbandingan data dalam kumpulan atau kategori yang berbeza. Artikel ini akan memperkenalkan secara terperinci cara menggunakan fungsi histogram berbilang dimensi bagi ECharts untuk memaparkan pengumpulan dan perbandingan data, dan menyediakan contoh kod khusus untuk rujukan pembaca. 1. EChar

PHP dan PDO: Cara mengumpulkan data dan pengiraan agregat PHP dan PDO: Cara mengumpulkan data dan pengiraan agregat Jul 28, 2023 pm 04:36 PM

PHP dan PDO: Cara melaksanakan pengumpulan data dan pengiraan pengagregatan Pengenalan: Semasa membangunkan aplikasi web, anda sering menghadapi situasi di mana anda perlu mengumpulkan dan mengagregat data dalam pangkalan data. Ia adalah amalan biasa dalam PHP untuk menggunakan sambungan PDO (PHPDataObjects) untuk menyambung dan mengendalikan pangkalan data. Artikel ini akan memperkenalkan cara menggunakan PDO untuk pengumpulan data dan pengiraan pengagregatan serta memberikan contoh kod yang sepadan. Sambung ke pangkalan data Pertama, kita perlu menggunakan PDO untuk menyambung ke pangkalan data. Berikut adalah contoh

Cara menggunakan PHP dan Vue untuk melaksanakan fungsi pengumpulan data Cara menggunakan PHP dan Vue untuk melaksanakan fungsi pengumpulan data Sep 25, 2023 am 09:18 AM

Pengenalan kepada cara menggunakan PHP dan Vue untuk melaksanakan fungsi pengumpulan data: Semasa membangunkan aplikasi web, anda sering menghadapi situasi di mana data perlu dikumpulkan. Fungsi pengumpulan data boleh dilaksanakan dengan mudah menggunakan PHP dan Vue. Artikel ini akan memperkenalkan langkah demi langkah cara menggunakan PHP dan Vue untuk melaksanakan pengumpulan data dan memberikan contoh kod khusus. 1. Penyediaan: Pasang persekitaran PHP dan Vue. Buat folder bernama projek "kumpulan" dan cipta fail dan struktur folder berikut: groupingindex

Cara mengumpulkan dan menapis data jadual melalui Vue dan Excel Cara mengumpulkan dan menapis data jadual melalui Vue dan Excel Jul 21, 2023 pm 03:34 PM

Cara mengumpulkan dan menapis data jadual melalui Vue dan Excel Pengenalan: Dalam banyak aplikasi praktikal, kita selalunya perlu mengumpulkan dan menapis data jadual untuk menganalisis dan memahami data dengan lebih baik. Artikel ini akan memperkenalkan cara melaksanakan fungsi pengumpulan dan penapisan data jadual melalui Vue dan Excel, serta menyediakan contoh kod yang sepadan untuk membantu pembaca bermula dengan cepat. Konsep asas dan konfigurasi persekitaran Vue Vue ialah rangka kerja progresif untuk membina antara muka pengguna, yang mudah dan cekap. Sebelum memulakan operasi, kami terlebih dahulu

Pangkalan data MySQL dan bahasa Go: Bagaimana untuk mengumpulkan data? Pangkalan data MySQL dan bahasa Go: Bagaimana untuk mengumpulkan data? Jun 17, 2023 pm 01:41 PM

Apabila jumlah data meningkat dan keperluan perniagaan menjadi lebih kompleks, pemprosesan data telah menjadi tugas yang perlu dan penting. Dalam pembangunan web moden, pangkalan data MySQL dan bahasa Go telah menjadi salah satu teknologi pilihan untuk pembangun. Pangkalan data MySQL digunakan untuk menyimpan dan mengurus data, manakala bahasa Go digunakan untuk memproses data. Artikel ini akan memperkenalkan cara menggunakan pangkalan data MySQL dan bahasa Go untuk pemprosesan pengumpulan data. Reka bentuk pangkalan data Pertama, kita perlu mereka bentuk struktur pangkalan data yang sesuai untuk pemprosesan kumpulan data. Katakan kita sedang membina laman web e-dagang

See all articles