Jadual Kandungan
1 Buat kumpulan
2. Pengumpulan penapis
3. Mengelompokkan dan menyusun
4、select子句排序
Rumah pangkalan data Oracle Contoh Oracle menerangkan data terkumpul secara terperinci

Contoh Oracle menerangkan data terkumpul secara terperinci

Jul 19, 2022 pm 02:07 PM
oracle

Artikel ini membawakan anda pengetahuan yang berkaitan tentang Oracle, yang terutamanya mengatur isu yang berkaitan dengan data berkumpulan membolehkan data dibahagikan kepada kumpulan logik supaya setiap kumpulan boleh dilaksanakan Mari kita lihat pengiraan agregat. Saya harap ia akan membantu semua orang.

Contoh Oracle menerangkan data terkumpul secara terperinci

Tutorial yang disyorkan: "Tutorial Video Oracle"

Pengelompokan membolehkan data dibahagikan kepada kumpulan logik supaya setiap Kumpulan melakukan agregat pengiraan.

1 Buat kumpulan

Kumpulan dibuat menggunakan klausa GROUP BY dalam pernyataan SELECT.

Contoh:

SELECT vend_id, count(*) as num_prodsfrom productsgroup by vend_id;
Salin selepas log masuk

Contoh Oracle menerangkan data terkumpul secara terperinci

Memandangkan GROUP BY digunakan, ia tidak perlu menyatakan setiap kumpulan untuk dinilai dan dikira, Ini dilakukan secara automatik. Klausa GROUP BY mengarahkan Oracle untuk mengumpulkan data dan melakukan pengagregatan pada setiap kumpulan (bukan pada keseluruhan set hasil).

Sebelum menggunakan GROUP BY, disenaraikan di bawah adalah beberapa peraturan penting yang perlu anda ketahui tentang menggunakannya.

  • Klausa GROUP BY boleh mengandungi seberapa banyak lajur yang diperlukan. Ia membenarkan pengumpulan bersarang, memberikan kawalan yang lebih terperinci tentang cara data dikumpulkan.
  • Jika anda mempunyai kumpulan bersarang dalam kumpulan mengikut klausa, data akan diringkaskan pada kumpulan terakhir yang ditentukan. Dalam erti kata lain, apabila membina kumpulan, semua lajur yang ditentukan akan dinilai bersama (jadi data tidak akan diambil untuk setiap lajur individu).
  • Setiap lajur yang disenaraikan dalam kumpulan oleh mestilah lajur yang diambil semula atau ungkapan yang sah (bukan fungsi agregat). Jika ungkapan digunakan dalam pilih, ungkapan yang sama mesti dinyatakan dalam kumpulan mengikut. Alias ​​tidak boleh digunakan.
  • Kecuali penyata pengiraan agregat, setiap lajur dalam penyata SELECT sepatutnya muncul dalam klausa GROUP BY.
  • Jika lajur pengumpulan mengandungi lajur dengan nilai NULL, NULL akan dikembalikan sebagai kumpulan. Jika terdapat berbilang baris dengan nilai NULL, kesemuanya akan dikumpulkan bersama.
  • Klausa GROUP BY mesti muncul selepas klausa WHERE dan sebelum klausa ORDER BY.

2. Pengumpulan penapis

Klausa tempat juga biasanya digunakan untuk penapisan baris. Walau bagaimanapun, di mana tidak digunakan di sini kerana di mana boleh menapis baris tertentu, bukan mengumpulkannya. Malah, mana tidak boleh digunakan untuk kumpulan.

Oracle menyediakan klausa lain untuk ini: HAVING. Satu-satunya perbezaan antara klausa where dan klausa mempunyai ialah tempat menapis baris, sambil mempunyai kumpulan penapis.

**Petua: **mempunyai menyokong semua operator di mana

Peraturan di mana dan mempunyai sintaks yang sama, hanya kata kunci yang berbeza.

Contoh:

SELECT cust_id, COUNT(*) AS ordersFROM ordersGROUP BY cust_idHAVING COUNT(*) >= 2;
Salin selepas log masuk

Contoh Oracle menerangkan data terkumpul secara terperinci

Nota: Perbezaan antara memiliki dan di mana

Lihat perbezaan antara mempunyai dan di mana dari sudut lain: tempat penapisan berlaku sebelum data, manakala penapisan berlaku selepas pengumpulan data. Ini ialah perbezaan penting, baris dipadamkan oleh klausa di mana tidak disertakan dalam kumpulan. Ini mungkin mengubah nilai yang dikira berdasarkan nilai yang digunakan dalam klausa yang mempunyai, yang seterusnya boleh menjejaskan kumpulan mana yang akan ditapis.

Contoh penggunaan klausa where dan mempunyai klausa pada masa yang sama:

select vend_id, count(*), as num_prodsfrom productswhere prod_price>=10group by vend_idhaving count(*) > 2;
Salin selepas log masuk

Contoh Oracle menerangkan data terkumpul secara terperinci

SELECT vend_id, COUNT(*) AS num_prodsFROM productsGROUP BY vend_idHAVING COUNT(*) >= 2;
Salin selepas log masuk

Contoh Oracle menerangkan data terkumpul secara terperinci

3. Mengelompokkan dan menyusun

Terdapat perbezaan besar antara kumpulan mengikut dan mengikut, walaupun ia biasanya digunakan untuk mencapai perkara yang sama.

Jadual berikut menerangkan perbezaan antara susunan mengikut dan kumpulan mengikut

order by group by
对生成的输出进行排序 对行进行分组,不过输出可能没有采用采用分组顺序
可能使用任意列(甚至包括没有选择的列) 只可能使用所选的列或者表达式,并且一定会使用所有选择的列表达式
从来都不是必须的 如果结合使用列(或者表达式)与聚合函数,则必需的

时常,你会发现使用GROUP BY分组的数据的确是以分组顺序输出的。但是并非总是如此,并且实际上SQL规范也并没有如此要求。而且你实际上可能希望它以不同于分组的方式进行排序。你以一种方式对数据进行分组(以获得特定于分组的聚合值),并不意味着你也希望输出以相同的方式进行排序。总是应该还提供一个显式的ORDER BY子句,即使它与GROUP BY子句完全相同。

提示:不要忘记ORDER BY

通常,无论何时使用GROUP BY子句,还应该指定一个ORDER BY子句,这是确保正确地对数据进行排序的唯一方式。永远不要依靠GROUP BY对数据排序。

为了演示同时使用GROUP BY和ORDER BY的情况,让我们看一个示例。下面的SELECT语句类似于之前使用的SELECT语句。它用于检索总价在50以上(含50)的所有订单的订单号和订单总价:

SELECT order_num, SUM(quantity*item_price) AS ordertotalFROM orderitemsGROUP BY order_numHAVING SUM(quantity*item_price) >= 50;
Salin selepas log masuk

Contoh Oracle menerangkan data terkumpul secara terperinci

要按订单总价对输出进行排序,只需添加一个ORDER BY子句,如下:

SELECT order_num, SUM(quantity*item_price) AS ordertotalFROM orderitemsGROUP BY order_numHAVING SUM(quantity*item_price) >= 50ORDER BY ordertotal;
Salin selepas log masuk

Contoh Oracle menerangkan data terkumpul secara terperinci

4、select子句排序

select子句和它们的顺序

子句 描述 是否必须
select 要返回的列或表达式 Y
from 要从中检索数据的表 Y(在Oracle中是必须的;在大多数其他的DBMS中则不是)
where 行级过滤(分组前过滤) N
group by 分组规范 仅当按分组计算聚合值时是必须的
having 分组级过滤(分组后过滤) N
order by 输出的排列顺序 N

推荐教程:《Oracle视频教程

Atas ialah kandungan terperinci Contoh Oracle menerangkan data terkumpul secara terperinci. 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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

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 memeriksa saiz meja oracle Cara memeriksa saiz meja oracle Apr 11, 2025 pm 08:15 PM

Untuk menanyakan saiz ruang meja oracle, ikuti langkah -langkah berikut: Tentukan nama meja dengan menjalankan pertanyaan: pilih Tablespace_Name dari DBA_TableSpaces; Tanya saiz meja dengan menjalankan pertanyaan: pilih jumlah (bait) sebagai total_size, jumlah (bytes_free) sebagai tersedia_space, jumlah (bytes) - jumlah (bytes_free) sebagai digunakan_space dari dba_data_files di mana tablespace_

Cara Mendapatkan Masa di Oracle Cara Mendapatkan Masa di Oracle Apr 11, 2025 pm 08:09 PM

Terdapat kaedah berikut untuk mendapatkan masa di Oracle: Current_TimeStamp: Mengembalikan masa sistem semasa, tepat untuk beberapa saat. SystimeStamp: Lebih tepat daripada Current_TimeStamp, kepada nanodekonda. SYSDATE: Mengembalikan tarikh sistem semasa, tidak termasuk bahagian masa. To_char (sysdate, 'yyy-mm-dd hh24: mi: ss'): Menukar tarikh dan masa sistem semasa ke format tertentu. Ekstrak: Ekstrak bahagian tertentu dari nilai masa, seperti tahun, bulan, atau jam.

Cara menyulitkan pandangan oracle Cara menyulitkan pandangan oracle Apr 11, 2025 pm 08:30 PM

Penyulitan Oracle View membolehkan anda menyulitkan data dalam pandangan, dengan itu meningkatkan keselamatan maklumat sensitif. Langkah -langkah termasuk: 1) mewujudkan kunci penyulitan induk (MEK); 2) mencipta pandangan yang disulitkan, menyatakan pandangan dan MEK untuk disulitkan; 3) Memberi kuasa pengguna untuk mengakses pandangan yang disulitkan. Bagaimana pandangan yang disulitkan berfungsi: Apabila permintaan pengguna untuk paparan yang disulitkan, Oracle menggunakan MEK untuk menyahsulit data, memastikan bahawa hanya pengguna yang diberi kuasa dapat mengakses data yang boleh dibaca.

Cara melihat contoh nama oracle Cara melihat contoh nama oracle Apr 11, 2025 pm 08:18 PM

Terdapat tiga cara untuk melihat nama contoh di Oracle: Gunakan "sqlplus" dan "pilih instance_name dari v $ instance;" Perintah pada baris arahan. Gunakan "pertunjukan instance_name;" Perintah dalam SQL*Plus. Semak Pembolehubah Alam Sekitar (ORACLE_SID pada Linux) melalui Pengurus Tugas Sistem Operasi, Pengurus Oracle Enterprise, atau melalui sistem operasi.

Cara menyahpasang pemasangan Oracle gagal Cara menyahpasang pemasangan Oracle gagal Apr 11, 2025 pm 08:24 PM

Nyahpasang Kaedah untuk kegagalan pemasangan Oracle: Tutup Perkhidmatan Oracle, Padam Fail Program Oracle dan Kekunci Pendaftaran, Nyahpasang pembolehubah persekitaran Oracle, dan mulakan semula komputer. Jika penyahpasang gagal, anda boleh menyahpasang secara manual menggunakan alat penyahpasang Oracle Universal.

Cara memeriksa nombor oracle yang tidak sah Cara memeriksa nombor oracle yang tidak sah Apr 11, 2025 pm 08:27 PM

Kesalahan angka Oracle tidak sah mungkin disebabkan oleh jenis data yang tidak sepadan, limpahan angka, kesilapan penukaran data, atau rasuah data. Langkah -langkah penyelesaian masalah termasuk memeriksa jenis data, mengesan limpahan digital, memeriksa penukaran data, memeriksa rasuah data, dan meneroka penyelesaian lain yang mungkin seperti mengkonfigurasi parameter NLS_NUMERIC_CHARACTERS dan membolehkan pembalakan pengesahan data.

Cara membuat Oracle Dynamic SQL Cara membuat Oracle Dynamic SQL Apr 12, 2025 am 06:06 AM

Kenyataan SQL boleh dibuat dan dilaksanakan berdasarkan input runtime dengan menggunakan SQL dinamik Oracle. Langkah -langkah termasuk: menyediakan pemboleh ubah rentetan kosong untuk menyimpan penyataan SQL yang dihasilkan secara dinamik. Gunakan pernyataan melaksanakan segera atau sediakan untuk menyusun dan melaksanakan pernyataan SQL dinamik. Gunakan pembolehubah bind untuk lulus input pengguna atau nilai dinamik lain ke SQL dinamik. Gunakan melaksanakan segera atau laksanakan untuk melaksanakan pernyataan SQL yang dinamik.

Cara menyelesaikan masalah penutup kursor oracle Cara menyelesaikan masalah penutup kursor oracle Apr 11, 2025 pm 10:18 PM

Kaedah untuk menyelesaikan masalah penutupan kursor Oracle termasuk: secara eksplisit menutup kursor menggunakan pernyataan Tutup. Mengisytiharkan kursor dalam klausa kemas kini supaya ia ditutup secara automatik selepas skop berakhir. Mengisytiharkan kursor dalam klausa menggunakan supaya ia secara automatik ditutup apabila pembolehubah PL/SQL yang berkaitan ditutup. Gunakan pengendalian pengecualian untuk memastikan kursor ditutup dalam keadaan pengecualian. Gunakan kolam sambungan untuk menutup kursor secara automatik. Lumpuhkan penyerahan automatik dan penangguhan kursor kelewatan.

See all articles