相关疑难解决方法(0)

选择每个GROUP BY组中的第一行?

正如标题所示,我想选择用a组成的每组行的第一行GROUP BY.

具体来说,如果我有一个purchases看起来像这样的表:

SELECT * FROM purchases;
Run Code Online (Sandbox Code Playgroud)

我的输出:

id | customer | total
---+----------+------
 1 | Joe      | 5
 2 | Sally    | 3
 3 | Joe      | 2
 4 | Sally    | 1

我想查询每个产品id的最大购买量(total)customer.像这样的东西:

SELECT FIRST(id), customer, FIRST(total)
FROM  purchases
GROUP BY customer
ORDER BY total DESC;
Run Code Online (Sandbox Code Playgroud)

预期产出:

FIRST(id) | customer | FIRST(total)
----------+----------+-------------
        1 | Joe      | 5
        2 | Sally    | 3

sql sqlite postgresql group-by greatest-n-per-group

1205
推荐指数
16
解决办法
95万
查看次数

如何删除postgres中的重复项(无唯一ID)

我在删除重复行时遇到了一些困难。我认为 user_id 和 time_id 一起充当标识符,但它们甚至是重复的。

user_id(文本)、time_id(bigint)、value1(数字)

user_id; time_id; value1| 
aaa;1;3|
aaa;1;3|
aaa;2;4|
baa;3;1|
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如何删除重复项?因为我在 time_id 中有 16 个不同的值,在 user_id 中有 15,000 个不同的值,所以我尝试了这样的事情,但我没有唯一的 id..

    DELETE FROM tablename a
     USING tablename b
    WHERE a.unique_id < b.unique_id
    AND   a.user_id = b.user_id
    time_id = 1       (repeat till time_id 16)
Run Code Online (Sandbox Code Playgroud)

postgresql uniqueidentifier duplicates

1
推荐指数
1
解决办法
4122
查看次数