Django Raw查询:使用group BY子句进行Count查询

克沙夫·阿格劳瓦尔

由于某些原因,我必须使用原始SQL查询,该查询将传递给django以使用mymodel.objects.raw(query)执行。但是我看到主键始终需要传递这就是阻止我进行一些查询的原因。

想象一下一个简单的查询,其中我对表进行了count(*)以及对两列的条件检查:

select count(*), column_value from tableX where column_label = 'Age' group by column_value having column_value > 30;

这在pgsql中可以正常工作,并给出如下结果:

 count | column_value 
-------+----------------
     1 |       38.00000
     2 |       45.00000
     1 |       35.00000
     1 |       44.00000

请注意第二行。那就是我想要的结果。但是,使用django,我必须传递主键,为此,我必须更改查询,例如:

以“ id”作为主键:

    select count(*), id, column_value from tableX where column_label = 'Age' group by column_value, id having column_value > 30;

现在,这会给我这样的信息:

 count |  id  | column_value 
-------+------+----------------
     1 | 4041 |       45.00000
     1 | 3876 |       38.00000
     1 | 3821 |       45.00000
     1 | 3931 |       35.00000
     1 | 3986 |       44.00000
(5 rows)

即使运行聚合命令后,我仍然可以看到所有单独的行,这对我没有用。还有什么其他方法可以仅使用django通过RAW查询获得此处提到的第一个结果?有什么方法可以破解主键?

ec

一种可能的解决方案是connection.cursor()直接使用并执行原始查询:

from django.db import connection

cursor = connection.cursor()
cursor.execute("""select 
                      count(*), column_value 
                  from 
                      tableX 
                  where 
                      column_label = 'Age' 
                  group by 
                      column_value 
                  having 
                      column_value > 30""")
result = cursor.fetchall()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django Raw查询:使用group BY子句进行Count查询

来自分类Dev

使用WITH子句和COUNT子查询进行查询

来自分类Dev

使用... objects.raw的Django查询

来自分类Dev

使用... objects.raw的django查询

来自分类Dev

使用 COUNT 、 GROUP BY 、 INTERVAL 和 LIMIT 创建 Django pgSQL 查询

来自分类Dev

是否可以使用django ORM对汇总查询进行GROUP BY?

来自分类Dev

是否可以使用django ORM对汇总查询进行GROUP BY?

来自分类Dev

使用HAVING COUNT>子句查询

来自分类Dev

使用GROUP BY子句在查询中基于COUNT(*)的条件

来自分类Dev

使用F()在Django中进行模量查询

来自分类Dev

django-使用lambda进行OR查询

来自分类Dev

使用WHERE子句对记录进行计数的查询

来自分类Dev

如何使用来自其他模型的信息注释查询集,或对使用Django Rest框架中的raw构建的查询集进行分页?

来自分类Dev

具有JOIN和GROUP BY SQL查询的Django COUNT

来自分类Dev

从Django Raw查询集中创建元组

来自分类Dev

从Django Raw查询集中创建元组

来自分类Dev

在使用object.raw()函数在Django中编写查询时如何使用%

来自分类Dev

每个查询的Django SELECT COUNT(*)为“ __count”

来自分类Dev

使用Django查询优化

来自分类Dev

使用Q的Django查询

来自分类Dev

使用Django创建查询

来自分类Dev

使用列表的 Django 查询

来自分类Dev

Django:ValueError:预取查询集不能使用raw(),values()和values_list()

来自分类Dev

在JPA查询中使用GROUP BY / HAVING子句

来自分类Dev

MySQL:查询和COUNT BY的子句在哪里?

来自分类Dev

mysql 子查询 COUNT 与 WHERE 子句混淆

来自分类Dev

如何在Django集合查询的GROUP BY子句中正确包含列?

来自分类Dev

SQL查询where子句以进行报告

来自分类Dev

Django 查询集:使用 .distinct() 和 .count() 处理表

Related 相关文章

  1. 1

    Django Raw查询:使用group BY子句进行Count查询

  2. 2

    使用WITH子句和COUNT子查询进行查询

  3. 3

    使用... objects.raw的Django查询

  4. 4

    使用... objects.raw的django查询

  5. 5

    使用 COUNT 、 GROUP BY 、 INTERVAL 和 LIMIT 创建 Django pgSQL 查询

  6. 6

    是否可以使用django ORM对汇总查询进行GROUP BY?

  7. 7

    是否可以使用django ORM对汇总查询进行GROUP BY?

  8. 8

    使用HAVING COUNT>子句查询

  9. 9

    使用GROUP BY子句在查询中基于COUNT(*)的条件

  10. 10

    使用F()在Django中进行模量查询

  11. 11

    django-使用lambda进行OR查询

  12. 12

    使用WHERE子句对记录进行计数的查询

  13. 13

    如何使用来自其他模型的信息注释查询集,或对使用Django Rest框架中的raw构建的查询集进行分页?

  14. 14

    具有JOIN和GROUP BY SQL查询的Django COUNT

  15. 15

    从Django Raw查询集中创建元组

  16. 16

    从Django Raw查询集中创建元组

  17. 17

    在使用object.raw()函数在Django中编写查询时如何使用%

  18. 18

    每个查询的Django SELECT COUNT(*)为“ __count”

  19. 19

    使用Django查询优化

  20. 20

    使用Q的Django查询

  21. 21

    使用Django创建查询

  22. 22

    使用列表的 Django 查询

  23. 23

    Django:ValueError:预取查询集不能使用raw(),values()和values_list()

  24. 24

    在JPA查询中使用GROUP BY / HAVING子句

  25. 25

    MySQL:查询和COUNT BY的子句在哪里?

  26. 26

    mysql 子查询 COUNT 与 WHERE 子句混淆

  27. 27

    如何在Django集合查询的GROUP BY子句中正确包含列?

  28. 28

    SQL查询where子句以进行报告

  29. 29

    Django 查询集:使用 .distinct() 和 .count() 处理表

热门标签

归档