Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Melaksanakan GROUP BY Queries dalam Django?

Bagaimana untuk Melaksanakan GROUP BY Queries dalam Django?

Patricia Arquette
Patricia Arquetteasal
2024-12-11 02:22:09594semak imbas

How to Perform GROUP BY Queries in Django?

Bagaimana untuk Mencapai Kumpulan Melalui Pertanyaan dalam Django?

Dalam Django, untuk melaksanakan kumpulan dengan pertanyaan pada model, seseorang boleh menggunakan ciri pengagregatan ORM. Ini dicapai dengan menggunakan kaedah values() dan annotate().

Pertimbangkan contoh berikut:

from django.db.models import Count
result = (Members.objects
    .values('designation')
    .annotate(dcount=Count('designation'))
    .order_by()
)

Kod ini diterjemahkan kepada pertanyaan SQL yang serupa dengan:

SELECT designation, COUNT(designation) AS dcount
FROM members GROUP BY designation

Hasil pertanyaan akan menjadi senarai objek kamus, setiap satu mewakili kumpulan. Contohnya:

[{'designation': 'Salesman', 'dcount': 2}, 
 {'designation': 'Manager', 'dcount': 2}]

Untuk memasukkan berbilang medan dalam hasil carian, cuma tambahkannya sebagai argumen kepada values():

    .values('designation', 'first_name', 'last_name')

Rujukan:

  • Dokumentasi Django: values(), annotate(), dan Kira
  • Dokumentasi Django: Pengagregatan, terutamanya bahagian Interaksi dengan pesanan lalai atau order_by()

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan GROUP BY Queries dalam Django?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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