我在PostgreSQL 11中有下面的表格。
col1 col2 col3 col4
3876 Dexamethasone Dexamethasone A01AC
3876 Dexamethasone Dexamethasone C05AA
3876 Dexamethasone Dexamethasone D07AB
3924 Dexamethasone Dexamethasone A01AD
3924 Dexamethasone Dexamethasone C05AB
3925 Dexamethasone sulphate Dexamethasone A01AC
3925 Dexamethasone sulphate Dexamethasone C05AA我希望获得具有不同值的col1、col2、col3和聚合col4的行,如果col1、col2、col3是相同的,则取col1的第一个值。
期望的输出是:
col1 col2 col3 col4
3876 Dexamethasone Dexamethasone A01AC | C05AA | D07AB | A01AD | C05AB
3925 Dexamethasone sulphate Dexamethasone A01AC | C05AA我试着跟踪查询。
select distinct on (col1, col2, col3)
col1,
col2,
col3,
string_agg(col4, ',')
from table
where col2 ilike '%dexamethasone%' and col1 = 'Dexamethasone'
group by col1, col2, col3;我如何限制输出,以获得一个col1值每col2,col3。就像。选择col1值: 3876,不包括3924。
发布于 2020-07-10 07:15:16
你可以试试这样的东西
select min(col1) as col1 ,
col2,
col3,
string_agg(col4, ',')
from table
where col2 like '%dexamethasone%'
and col1 = 'Dexamethasone'
group by col2, col3;https://stackoverflow.com/questions/62828845
复制相似问题