Sql 查询类别/交易记录的唯一值
我想查询一个数据库表,其中包含每个事务中不同articleIDs的如下数据:Sql 查询类别/交易记录的唯一值,sql,grouping,hana,having,distinct-values,Sql,Grouping,Hana,Having,Distinct Values,我想查询一个数据库表,其中包含每个事务中不同articleIDs的如下数据: TransactionID TransactPos ArticleID 1第A条 1 2第B条 2.1 A条 2 B条 3.1 A条 3.2第C条 3 D条 3 4/5/6文章E给定的数据与这3列是不同的,如果你想得到你提到的输出。尝试下面的查询以获得相同的结果 select TransactionID , string_agg(TransactPos, '/') as TransactPos
TransactionID TransactPos ArticleID
1第A条
1 2第B条
2.1 A条
2 B条
3.1 A条
3.2第C条
3 D条
3 4/5/6文章E给定的数据与这3列是不同的,如果你想得到你提到的输出。尝试下面的查询以获得相同的结果
select TransactionID , string_agg(TransactPos, '/') as TransactPos, ArticleID from yourtable
group by TransactionID,ArticleID
我不明白你是如何定义“独特价值”的。Article E
在哪里???Why come is将使用distinct进行转义可能术语distinct value更好…@Rams:See,在事务3中,条款E存在三次。我想要的是,这篇文章只返回一次。对于修改后的请求,string_agg(transactipos,“/”)
而不是min(transactipos)
@ThorstenKettner是的,相应地更改了,这甚至没有必要,我只是为了澄清而添加了它;-)。但是你的解决方案很有魅力,谢谢!
TransactionID TransactPos ArticleID
1 1 Article A
1 2 Article B
2 1 Article A
2 2 Article B
3 1 Article A
3 2 Article C
3 3 Article D
3 4/5/6 Article E <--- Distinct value for Transaction 3
3 7 Article F
4 1/2 Article A <--- Distinct value for Transaction 4
4 3 Article C
select TransactionID , string_agg(TransactPos, '/') as TransactPos, ArticleID from yourtable
group by TransactionID,ArticleID