gpt4 book ai didi

sql - Django或SQL:为分组查询集查找给定列的多少个唯一值

转载 作者:行者123 更新时间:2023-12-03 19:12:00 27 4
gpt4 key购买 nike

我有一个看起来像这样的数据集

member    position
0 1
0 0
0 1
0 1
1 0
1 1
1 0
1 1
1 1
2 0
2 0
2 0


我要实现的目标是知道哪些成员只有一个职位。我从SQL开始:

SELECT * FROM 'table' GROUP BY member, position


它给了我

member    position
0 0
0 1
1 0
1 1
2 0


从这个结果来看,我该如何剔除仅出现一次的所有成员(只有1个位置的成员)?我尝试过DISTINCT,但不能解决问题。

另外,我想用单个查询集在Django ORM中编写此代码,但是 group_by必须与 annotateaggregate一起使用,但是这些仅与Sum,Count,Avg一起使用...正确的方法?

最佳答案

您可以在having中使用group by子句。您的问题有点模棱两可。如果您希望成员只有一个position值:

SELECT member
FROM t
GROUP BY member
HAVING MIN(position) = MAX(position);


如果您希望成员/职位组合仅出现一次:

SELECT member, position
FROM t
GROUP BY member, position
HAVING COUNT(*) = 1;

关于sql - Django或SQL:为分组查询集查找给定列的多少个唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57335106/

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