如何在 sql 中同时使用 Count() 和 Min/Max

How to use both Count() and Min/Max in sql

我有以下 table:MyTable

   name   | price
|-------------------|
|   a     |    10   |
|-------------------|
|   b     |     5   |
|-------------------|
|   a     |     7   |
|-------------------|
|   a     |     3   |
|-------------------|
|   a     |     12  |
|-------------------|
|   b     |     6   |
|-------------------|
|   c     |     2   |
|-------------------|
|   c     |     5   |
|-------------------|

我想计算 name 的频率,需要为每个 name 获得 max_pricemin_price

预期输出为:

   name   | count   | min_price | max_price
|-------------------|----------------------|
|   a     |     4   |  3        |   12     | 
|-------------------|----------------------|
|   b     |     2   |  5        |   6      |
|-------------------|----------------------|
|   c     |     2   |  2        |   5      |
|-------------------|----------------------|

我想编写 Django ORM 查询。请帮助我实现它。

您可以为项目添加注释:

from django.db.models import Count, Max, Min

MyModel.objects.values('name').annotate(
    count=Count('pk'),
    min_price=Min('price'),
    max_price=Max('price')
).order_by('name')