如果有人可以提供帮助,那就太好了!
我使用9.3
的{{1}}版本。
我有一个表(称为postgreSQL
),有三列;
这是充满数据的,另一个(现在是空的)表(称为likes
)有4列;
表'赞'的关键是track2tracks
。
表(trackurl, userurl, date)
的关键是track2tracks
我想在表(track1, track2, date, userurl)
中填入同一位用户喜欢的所有曲目组合,以显示两个喜欢的最新日期。
到目前为止,我理解:我需要在userurl上对like-table进行分区,然后为每个用户比较他们日期的所有喜欢对。然后我需要将这些对(作为track1和track2)添加到track2tracks-table,同时添加最新日期和相应的用户。
我遇到的最大问题是如何比较对的值(同一列的日期;日期)。
非常感谢你!!
答案 0 :(得分:1)
INSERT INTO track2tracks
SELECT l1.trackurl, l2.trackurl, max(greatest(l1.date, l2.date)), l1.userurl
FROM likes l1
JOIN likes l2 ON (l1.userurl = l2.userurl) AND (l1.trackurl != l2.trackurl)
GROUP BY l1.trackurl, l2.trackurl, l1.userurl;