这些是我的表格中的列
id (autogenerated)
created_user
created_date
post_text
这个表有很多值。我想获取每个 created_user
我是 SQL
新手,需要帮助。我在 Postgres 数据库中运行了以下查询,但它没有帮助
SELECT * FROM posts WHERE created_date IN
(SELECT MAX(created_date) FROM posts GROUP BY created_date)
最佳答案
您可以使用row_number()
window function为每个用户创建有序行数。之后您可以轻松地按此值进行过滤
SELECT
*
FROM (
SELECT
*,
row_number() OVER (PARTITION BY created_user ORDER BY created_date DESC)
FROM
posts
) s
WHERE row_number <= 3
PARTITION BY
对用户进行分组ORDER BY date DESC
将每个用户的帖子按降序排列,以获取最新的row_count == 1
,...
关于sql - 每个用户仅选择 3 行 - SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57926133/