Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menyelesaikan Ralat 'Bukan Fungsi Kumpulan Tunggal' dalam SQL?

Bagaimana untuk Menyelesaikan Ralat 'Bukan Fungsi Kumpulan Tunggal' dalam SQL?

Patricia Arquette
Lepaskan: 2025-01-04 07:46:40
asal
577 orang telah melayarinya

How to Resolve the

Memahami "Bukan Fungsi Kumpulan Tunggal Kumpulan" dalam SQL

Apabila cuba menggabungkan fungsi kumpulan dengan ungkapan lajur individu dalam SELECT kenyataan, seperti dalam pertanyaan yang disediakan:

SELECT SSN, MAX(SUM(TIME))
FROM downloads
GROUP BY SSN
Salin selepas log masuk

Anda mungkin menghadapi "bukan satu kumpulan ralat fungsi kumpulan". Ini berlaku kerana fungsi kumpulan SUM(TIME) mengira nilai tunggal untuk setiap kumpulan (SSN), menjadikannya tidak serasi dengan ungkapan lajur individu SSN.

Untuk menyelesaikan ralat ini, anda mempunyai beberapa pilihan:

  1. Alih keluar Lajur Individu Ungkapan:

    SELECT MAX(SUM(TIME))
    FROM downloads
    GROUP BY SSN
    Salin selepas log masuk

    Ini hanya akan mengembalikan nilai jumlah maksimum tanpa SSN yang sepadan.

  2. Tambah KUMPULAN MENGIKUT Klausa untuk Semua Lajur Ungkapan:

    SELECT SSN, MAX(SUM(TIME))
    FROM downloads
    GROUP BY SSN, TIME
    Salin selepas log masuk

    Ini akan mengumpulkan hasil mengikut SSN dan TIME, menjadikan fungsi MAX(SUM(TIME)) sah.

  3. Gunakan Subquery Agregat:

    SELECT SSN, SUM(TIME)
    FROM downloads
    GROUP BY SSN
    HAVING SUM(TIME) = (SELECT MAX(SUM(TIME)) FROM downloads GROUP BY SSN)
    Salin selepas log masuk

    Subquery ini mengira nilai jumlah maksimum dan memilih hanya baris di mana JUMLAH(MASA) untuk setiap SSN sepadan dengannya maksimum.

Bergantung pada keperluan khusus anda, salah satu daripada penyelesaian ini akan membolehkan anda memperoleh hasil yang diingini tanpa menghadapi ralat "bukan fungsi kumpulan tunggal".

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'Bukan Fungsi Kumpulan Tunggal' dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan