当前位置: 首页 > 面试题库 >

Django中的GROUP_CONCAT等效项

唐沈义
2023-03-14
问题内容

说我有下表称为fruits

id | type   | name
-----------------
 0 | apple  | fuji
 1 | apple  | mac
 2 | orange | navel

我的目标是最终得出一个不同的types列表,并以逗号分隔names

apple, 2, "fuji,mac"
orange, 1, "navel"

这可以GROUP_CONCAT在MySQL中轻松完成,但是与Django等效项却遇到了麻烦。到目前为止,这是我所缺少的,但是我缺少这些GROUP_CONCAT东西:

query_set = Fruits.objects.values('type').annotate(count=Count('type')).order_by('-count')

如果可能,我想避免使用原始SQL查询。

任何帮助将不胜感激!


问题答案:

Django ORM不支持此功能。如果你不想使用原始SQL,则需要分组并加入。



 类似资料:
  • 问题内容: 我有一张桌子,我想将每个ID与连接的字段值连接成一行。 例如,在我的表格中,我有以下内容: 我想输出: 在MySQL中,我能够使用聚合函数,但是在这里似乎不起作用… PostgreSQL是否具有等效功能,或者还有另一种方法可以实现此目的? 问题答案: 这可能是一个很好的起点(仅限8.4+版本): array_agg返回一个数组,但是您可以根据需要对其进行文本转换和编辑(请参见下面的说明

  • 问题内容: 我可以在Sql Server Reporting Services中使用表达式来组合组中列的所有值吗?我正在尝试完成MySQL的group_concat函数的功能,但是要在报告中(而不是在查询中)。 例子。我要制作以下数据: 在报告中查看以下内容: 问题答案: 尝试这样的事情(适用于SQL Server 2005及更高版本): 输出:

  • 问题内容: 在django中,此SQL语句的等效项是什么? 如何在Django中实现呢?我试过了 但这是行不通的。我该如何执行呢? 问题答案: 使用或(不区分大小写): SQL等效为

  • 问题内容: 在Informix的SQL中寻找可模拟MySQL功能的查询。 MySQL的作用是创建该组中所有成员的枚举。 因此,数据如下: 和以下查询: 会产生: 在Informix中实现这一目标的最有效方法是什么?我们一定要使用存储过程吗? 问题答案: 为此,您必须定义一个用户定义的聚合。这包括四个部分-四个功能(在IDS 12.10信息中心中 搜索CREATE AGGREGATE ): 初始化器

  • 问题内容: Printf在1.5版本中添加到Java中,但是我似乎找不到如何将输出发送到字符串而不是文件的方法(这是sprintf在C语言中的作用)。有谁知道如何做到这一点? 问题答案: 查看格式及其语法

  • 问题内容: 有谁知道我如何在.NET中实现Java的Deflater.deflate()功能,因此对于Java的Infalter.inflate()方法是可以理解的? 问候,拉法尔 问题答案: 我已经使用#zipLib。这很简单。 从他们的网站上获取: / zip压缩,而且我不想使用libzip.dll或类似的东西。我希望全部使用纯C# 。”