我需要根据11个外键(1-11)的排列将用户分组到一个组中。
我有一个big_table:
FK | User_ID FK | User_ID
1 | a 4 | c
5 | a 1 | c
3 | b 5 | c
9 | b 11 | c
7 | b 2 | c
有效排列将存储在单独的表中,一个表用于所有排列大小为2的表,另一个用于排列大小为3的表等。
如何检查用户是否符合适合群组的要求?
(效率更可取,但目标是工作解决方案)。抱歉,我没有任何代码,但我对SQL很新,我不知道从哪里开始解决这个问题。
编辑:还有其他组和更多外键,G1-G3仅适用于FK的1-11。
我最难解决的问题是如何将多个FK与单个排列进行比较。例如,我该如何比较
1 | a and 3 | a
以算法方式列出有效排列?
答案 0 :(得分:0)
如果您只想计算外键的数量,请使用count(*)
或count(distinct)
:
select user_id, count(*)
from big_table
group by user_id;
这将给出每个用户的外键数量(假设表中没有重复项)。