Bekerja dengan Kolom dalam Kueri Agregat (Alat Database Visual)

Berlaku untuk:SQL Server

Saat Anda membuat kueri agregat, Kueri dan Tampilan Designer membuat asumsi tertentu sehingga dapat membuat kueri yang valid. Misalnya, jika Anda membuat kueri agregat dan menandai kolom data untuk output, Designer Kueri dan Tampilan secara otomatis membuat bagian kolom dari klausa GROUP BY sehingga Anda tidak secara tidak sengaja mencoba menampilkan konten baris individual dalam ringkasan.

Menggunakan Kelompokkan Menurut

Designer Kueri dan Tampilan menggunakan panduan berikut untuk bekerja dengan kolom:

  • Saat Anda memilih opsi Kelompokkan Menurut atau menambahkan fungsi agregat ke kueri, semua kolom yang ditandai untuk output atau digunakan untuk pengurutan secara otomatis ditambahkan ke klausa GROUP BY. Kolom tidak secara otomatis ditambahkan ke klausul GROUP BY jika sudah menjadi bagian dari fungsi agregat.

    Jika Anda tidak ingin kolom tertentu menjadi bagian dari klausa GROUP BY, Anda harus mengubahnya secara manual dengan memilih opsi lain di kolom Kelompokkan Menurut dari panel Kriteria. Namun, Designer Kueri dan Tampilan tidak akan mencegah Anda memilih opsi yang bisa menghasilkan kueri yang tidak akan berjalan.

  • Jika Anda menambahkan kolom output kueri secara manual ke fungsi agregat di panel Kriteria atau SQL, Designer Kueri dan Tampilan tidak secara otomatis menghapus kolom output lain dari kueri. Oleh karena itu, Anda harus menghapus kolom yang tersisa dari output kueri atau menjadikannya bagian dari klausa GROUP BY atau fungsi agregat.

Saat Anda memasukkan kondisi pencarian ke dalam kolom Filter panel Kriteria, Designer Kueri dan Tampilan mengikuti aturan ini:

  • Jika kolom Kelompokkan Menurut kisi tidak ditampilkan (karena Anda belum menentukan kueri agregat), kondisi pencarian ditempatkan ke dalam klausa WHERE.

  • Jika Anda sudah berada dalam kueri agregat dan telah memilih opsi Di mana di kolom Kelompokkan Menurut , kondisi pencarian ditempatkan ke dalam klausa WHERE.

  • Jika kolom Kelompokkan Menurut berisi nilai apa pun selain Di mana, kondisi pencarian ditempatkan dalam klausa HAVING.

Menggunakan Klausul HAVING dan WHERE

Prinsip-prinsip berikut menjelaskan bagaimana Anda bisa mereferensikan kolom dalam kueri agregat dalam kondisi pencarian. Secara umum, Anda dapat menggunakan kolom dalam kondisi pencarian untuk memfilter baris yang harus diringkas (klausa WHERE) atau untuk menentukan hasil yang dikelompokkan mana yang muncul di output akhir (klausa HAVING).

  • Kolom data individual dapat muncul di klausa WHERE atau HAVING, bergantung pada bagaimana kolom tersebut digunakan di tempat lain dalam kueri.

  • Klausa WHERE digunakan untuk memilih subset baris untuk meringkas dan mengelompokkan dan dengan demikian diterapkan sebelum pengelompokan apa pun selesai. Oleh karena itu, Anda dapat menggunakan kolom data dalam klausa WHERE meskipun itu bukan bagian dari klausa GROUP BY atau terkandung dalam fungsi agregat. Misalnya, pernyataan berikut memilih semua judul yang harganya lebih dari $10,00 dan rata-rata harganya:

    SELECT AVG(price)  
    FROM titles  
    WHERE price > 10  
    
  • Jika Anda membuat kondisi pencarian yang melibatkan kolom yang juga digunakan dalam klausa GROUP BY atau fungsi agregat, kondisi pencarian dapat muncul sebagai klausa WHERE atau klausa HAVING - Anda dapat memutuskan mana saat Membuat kondisi. Misalnya, pernyataan berikut membuat harga rata-rata untuk judul untuk setiap penerbit, lalu menampilkan rata-rata untuk penerbit di mana harga rata-rata lebih besar dari $10,00:

    SELECT pub_id, AVG(price)  
    FROM titles  
    GROUP BY pub_id  
    HAVING (AVG(price) > 10)  
    
  • Jika Anda menggunakan fungsi agregat dalam kondisi pencarian, kondisi tersebut melibatkan ringkasan dan karenanya harus menjadi bagian dari klausa HAVING.

Lihat juga

Meringkas Hasil Kueri (Alat Database Visual)
Mengurutkan dan Mengelompokkan Hasil Kueri (Alat Database Visual)