假设我正在构建一个约会应用程序,根据用户的约会目标为他们生成推荐。假设用户在数据库中表示如下:

       Column        |            Type
---------------------+-----------------------------
 id                  | bigint
 updated_since       | timestamp
 goal                | text

假设goal的值可以是以下四项之一:
seeking_sugar_daddy
seeking_sugar_mama
be_sugar_daddy
be_sugar_mama
现在,假设我有一个推荐引擎,它定期运行,并根据目标和其他一些标准(身高、年龄等)为所有用户生成匹配项。推荐引擎将一对用户作为输入并生成分数。
生成推荐引擎输入列表的最有效方法是什么?唯一有效的输入是具有匹配目标的对-例如,如果User A有一个目标seeking_sugar_daddy,而User B有一个目标be_sugar_daddy则是有效的输入,但seeking_sugar_daddybe_sugar_mama不是有效的对。
一旦我从数据库中获取所有用户,我应该如何对他们进行分组或者在数据库中有这样做的方法吗?

最佳答案

让我们将您的目标缩写为"A""C""G""T",其中A匹配T,C匹配G。下面是您的匹配:

SELECT * from users AS a JOIN users AS b
ON (a.goal = "A" AND b.goal = "T") OR (a.goal = "C" and b.goal = "G")

注意,由于同一个表出现在左侧和右侧,因此不需要检查a.goal = "T"等。

关于python - 按列对数据库行进行分组的有效方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43003515/

10-14 01:59