gpt4 book ai didi

mysql - 选择两列的组合,并计算该组合的出现次数

转载 作者:可可西里 更新时间:2023-11-01 07:13:46 24 4
gpt4 key购买 nike

我有一个问题表,其中每一行都是一个问题,所有问题都有一个 asked_by 和 answered_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

我想返回 session 中的唯一组合,以及该组合的计数。

例如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)

这会打印出与 Bohemians 完全相同的 SQL。

最佳答案

一个简单的 COUNT(*) 和一个 GROUP BY 就可以了:

select asked_by, answered_by, count(*)
from question_tbl
where session = '2011-2012'
group by 1, 2;

如果您希望查询返回所有 session 的数据,请使用:

select session, asked_by, answered_by, count(*)
from question_tbl
group by 1, 2, 3;

关于mysql - 选择两列的组合,并计算该组合的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11072036/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com