SELECT distinct(product_id), id
FROM stock_move
WHERE date >= '2019-09-24 00:00:00'
and date <= '2019-09-24 23:59:59'
通过此查询,我仍然获得
之类的结果 |250, 1256
|250, 1257
|259, 1258
但是我不想选择重复项。所以从第一行到第二行,我只需要选择一个。我该如何避免?
所需的输出。
|250, 1256
|259, 1258
答案 0 :(得分:2)
查询中的括号不重要,查询与
相同SELECT DISTINCT product_id, id
FROM stock_move
WHERE date >= '2019-09-24 00:00:00' and date <= '2019-09-24 23:59:59';
因此,只有在product_id
和id
相同的情况下,重复项才会被删除。
要获取所需的内容,请使用DISTINCT ON
:
SELECT DISTINCT ON (product_id) product_id, id
FROM stock_move
WHERE date >= '2019-09-24 00:00:00' and date <= '2019-09-24 23:59:59';
每个product_id
仅输出一行。
如果要控制返回的 行,请添加一个ORDER BY
子句。