sql查询在列中查找不同的记录

时间:2018-02-19 15:57:01

标签: sql db2

我有5 OR 6 COLUMNS表,我需要使用以下2列来获得结果

col1     col2

Acc1      USD
ACC1      GBP
ACC1      EUR
ACC2      USD

结果:

我需要查看一个acc是否有超过2种货币,但基础货币是美元。我需要找出那些有美元加其他货币的记录,如果我只有美元账户那么它不应该出现在我的结果中。

2 个答案:

答案 0 :(得分:1)

根据所提供的信息,这可能是一个答案:

SELECT col1
  FROM tab
 GROUP BY col1
HAVING count(*) > 1

答案 1 :(得分:0)

不是最好的解决方案,但应该完成这项工作。

with cte as 
  (
    SELECT t1.[col1],t1.[col2],(select count(t2.col1) from accounts t2 where t2.col1=t1.col1) as AllCurrency
    from accounts t1
  ) 
SELECT distinct cte.col1 from cte where cte.AllCurrency>1