我有一个问题表,其中每一行都是一个问题,所有问题都有一个 ask_by 和 answers_by 字段。我想选择“提问者”和“回答者”的所有独特组合,并计算这种提问/回答组合发生了多少次。
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 编写此代码,但由于我什至无法弄清楚如何为此制定合理的 google 搜索,因此找到 SQL 方式是我的目标。
问题解决后的注意事项: 因为这在 SQL 中很容易,所以在 Django 的 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)
这将打印出与 Bohemians 完全相同的 SQL。