mysql数据分组:过滤分组
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;
输出:
分析:这条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;
输出:
分析:这条语句中,第一行是使用了聚集函数的基本 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;
输出:
【相关推荐】
Atas ialah kandungan terperinci mysql数据分组:过滤分组. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

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 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? 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.

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 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

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 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

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
