Postgress中的Group by子句中有多个不需要的记录

时间:2016-06-05 19:21:21

标签: sql postgresql

我有两个表,我将它们连接在一起然后运行group by子句。问题是我不断收到不需要的数据。

client table
----------
name
company_id
created_at


company table
-----------
name

查询:

SELECT company.name, clients.name, MIN (created_at) created_at
FROM company
INNER JOIN client
ON client.company_id = company.id
group by company.name, client.name

查询返回给我所有用户,但我想要的只是每个公司最初创建的每个用户。知道我需要客户名称,我应该改变什么。

1 个答案:

答案 0 :(得分:3)

如果您想要每个公司中的第一个,请使用distinct on。这是一个很好的结构,仅在Postgres中可用:

SELECT DISTINCT ON (co.name) co.name, cl.name, cl.created_at
FROM company co INNER JOIN
     client cl
     ON cl.company_id = co.id
ORDER BY co.name, cl.created_at asc;
相关问题