我是靠谱客的博主 朴实火车,最近开发中收集的这篇文章主要介绍mysql 对比两列相同数目_mysql – 选择两列的组合,并计算此组合的出现次数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我有一个有问题的表,每行都是一个问题,所有问题都有一个ask_by和answers_by字段.我想选择“askers”和“answerers”的所有独特组合,并计算这种询问/回答组合发生的次数.

question_tbl:

id | asked_by | answered_by | session

--------+----------+-------------+---------

1 | AA | JD | 2011-2012

2 | JD | AA | 2011-2012

9 | AA | JD | 2011-2012

12 | AA | JD | 2009-2010

我想在会话中返回唯一的组合,以及此组合的计数.

例如. 2011-2012:

AA, JD, 2

JD, AA, 1

PS:理想情况下我会为django orm写这个,但我似乎无法弄清楚如何为此制定一个合理的谷歌搜索,找到SQL方式是我的目标.

问题解决后请注意:

由于这在SQL中非常简单,因此在Djangos ORM中也很容易实现.我会留在这里以供以后记录:

from django.db.models import Count

from myproject.models import Questions

Questions.objects.filter(sesjonid='2011-2012').values('sporsmal_til', 'sporsmal_fra').annotate(count=Count('besvart_av'))

通过测试SQL中的外观,我觉得在(./manage.py shell中)更正:

print str(Questions.objects.filter(sesjonid='2011-2012').values('sporsmal_til', 'sporsmal_fra').annotate(count=Count('sporsmal_til')).query)

这打印出与波希米亚人完全相同的SQL.

解决方法:

使用GROUP BY的简单COUNT(*)将执行此操作:

select asked_by, answered_by, count(*)

from question_tbl

where session = '2011-2012'

group by 1, 2;

如果您希望查询返回所有会话的数据,请使用以下命令:

select session, asked_by, answered_by, count(*)

from question_tbl

group by 1, 2, 3;

标签:sql,mysql,django-views

来源: https://codeday.me/bug/20190723/1512638.html

最后

以上就是朴实火车为你收集整理的mysql 对比两列相同数目_mysql – 选择两列的组合,并计算此组合的出现次数的全部内容,希望文章能够帮你解决mysql 对比两列相同数目_mysql – 选择两列的组合,并计算此组合的出现次数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部