2010-12-10 11 views
2
select substring(datapath,1,5), COUNT(substring(datapath,1,5)) from batchinfo 
where datapath like '%thc%' 
group by datapath 
having COUNT(substring(datapath,1,5))>1 

私は表にし、それが文字列全体をカウント何らかの理由がいくつあるか、各ストリングのカウントしようとしています。私は間違って何をしていますか?SQL - 全体ではなく、文字列の比較ストリング

+0

簡単な例がありますか? – Unreason

答えて

2

あなたは単にあなたの代わりに、完全なデータパスのカウントしようとしている部分文字列のGROUP BYにする必要があります。カウントに部分文字列関数を繰り返す必要もありません。

select substring(datapath,1,5), COUNT(*) 
    from batchinfo 
    where datapath like '%thc%' 
    group by substring(datapath,1,5) 
    having COUNT(*)>1 
1

試してみてください。

select d, count(*) 
from 
(
    select substring(datapath,1,5) d from batchinfo 
    where datapath like '%thc%' 
) 
group by d 
having COUNT(*) > 1 
+0

サブストリングを繰り返さないので – BlackICE