postgresql - 仅在一列上不同
postgresql - distinct only on one column
我有一个名为 eatable 的 table。它具有 type、name 等列。
type 列有 fruit, veggie, veggie, fruit, veggie
个值
.
name 列有 apple, brinjal, carrot, banana, cabbage
.values
我希望输出为,类型列必须仅显示 2 行,名称应显示所有值。
应该如下所示:
我已经尝试了以下查询,但不是我所期望的:
select distinct on (type) type, name from eatable;
帮帮我!!
您可以使用 PostgreSQL 的 Aggregate Functions
SELECT type
,string_agg(NAME, ',') "name"
FROM eatable
GROUP BY type;
结果:
type name
text text
------ ----------------------
fruit apple,banana
veggie brinjal,carrot,cabbage
或
SELECT type
,array_agg(name) "name"
FROM eatable
GROUP BY type;
结果:
type name
text text[]
------ ------------------------
fruit {apple,banana}
veggie {brinjal,carrot,cabbage}
我有一个名为 eatable 的 table。它具有 type、name 等列。
type 列有 fruit, veggie, veggie, fruit, veggie
个值
.
name 列有 apple, brinjal, carrot, banana, cabbage
.values
我希望输出为,类型列必须仅显示 2 行,名称应显示所有值。
应该如下所示:
我已经尝试了以下查询,但不是我所期望的:
select distinct on (type) type, name from eatable;
帮帮我!!
您可以使用 PostgreSQL 的 Aggregate Functions
SELECT type
,string_agg(NAME, ',') "name"
FROM eatable
GROUP BY type;
结果:
type name
text text
------ ----------------------
fruit apple,banana
veggie brinjal,carrot,cabbage
或
SELECT type
,array_agg(name) "name"
FROM eatable
GROUP BY type;
结果:
type name
text text[]
------ ------------------------
fruit {apple,banana}
veggie {brinjal,carrot,cabbage}