Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Melakukan Kumpulan Mengikut Pertanyaan dalam Django Menggunakan Pengagregatan?

Bagaimanakah Saya Boleh Melakukan Kumpulan Mengikut Pertanyaan dalam Django Menggunakan Pengagregatan?

Barbara Streisand
Barbara Streisandasal
2024-12-06 02:51:11512semak imbas

How Can I Perform Group By Queries in Django Using Aggregation?

Kumpulkan Mengikut Pertanyaan dalam Django

Tanpa menampal API set pertanyaan Django, anda boleh mencapai kumpulan mengikut fungsi menggunakan pengagregatan ORM ciri.

Pengagregatan menggunakan Nilai dan Kira

Untuk mengumpulkan hasil mengikut medan tertentu dan mengira kejadian setiap kumpulan, gunakan sintaks berikut:

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

Ini akan mengembalikan set pertanyaan dengan keputusan dikumpulkan mengikut medan penetapan, bersama-sama dengan kiraan setiap jawatan. Outputnya ialah senarai kamus, setiap satu mengandungi sebutan dan dcount (kiraan sebutan).

Termasuk Berbilang Medan dalam Hasil

Untuk memasukkan berbilang medan dalam keputusan, hanya tambahkannya sebagai argumen kepada nilai () fungsi:

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

Rujukan

  • [dokumentasi Django: values()](https://docs.djangoproject.com/en/ stabil/ref/models/querysets/#values)
  • [Django dokumentasi: annotate()](https://docs.djangoproject.com/en/stable/ref/models/querysets/#annotate)
  • [Django documentation: Count](https://docs.djangoproject .com/en/stable/ref/models/lookups/#count)
  • [dokumentasi Django: Pengagregatan](https://docs.djangoproject.com/en/stable/topics/db/aggregation/)
  • [Dokumentasi Django: Interaksi dengan pesanan lalai atau order_by()](https://docs.djangoproject.com/en/stable/topics/db/aggregation/#interaction-with-default-ordering-or-orderby)

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melakukan Kumpulan Mengikut Pertanyaan dalam Django Menggunakan Pengagregatan?. 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