peewee group_by
时间: 2025-01-17 16:03:43 浏览: 32
### Peewee ORM 中 `group_by` 的用法
在 Peewee ORM 中,`group_by` 方法用于执行 SQL 查询中的 GROUP BY 子句。这通常与聚合函数一起使用来汇总数据[^1]。
#### 使用示例
下面是一个简单的例子展示如何利用 `group_by` 来统计每种类型的记录数量:
假设有一个名为 `Post` 的模型表示博客文章,并且该表中有一列叫做 `category` 表明帖子所属类别,则可以通过如下方式查询各类别的帖子数目:
```python
from peewee import fn, Post
query = (Post.select(Post.category, fn.COUNT(Post.id).alias('count'))
.group_by(Post.category))
for record in query:
print(f'Category {record.category}: {record.count} posts')
```
这段代码会输出每个类别的名称以及对应的文章数[^2]。
另外,在更复杂的情况下可以加入条件过滤或者排序等功能增强查询能力。例如按日期范围筛选并按照计数值降序排列结果集:
```python
import datetime as dt
start_date = dt.date(2023, 1, 1)
end_date = dt.date.today()
filtered_query = (
Post.select(Post.category, fn.COUNT(Post.id).alias('post_count'))
.where((Post.created_at >= start_date) & (Post.created_at <= end_date))
.group_by(Post.category)
.order_by(fn.COUNT(Post.id).desc())
)
for item in filtered_query:
print(item.category, item.post_count)
```
此段脚本将会打印指定时间段内各个分类下的发帖量,并依据数量多少来进行排序显示[^3]。
阅读全文
相关推荐
















