2012-03-23 22 views
2

にのみ存在している携帯電話番号を選択して、私は次のテーブルを持っている:1つの場所ID

MobileNumber LocID 
    a   2 
    b   3 
    a   2 
    b   3 
    b   4 
    c   5 
    etc 

携帯電話番号が重複して異なるLOCIDを持つことができます。私は1つのLocID(この場合は 'a'と 'c')にのみ存在していた携帯のリストを持っていたいと思います。私は次のことを試みたが、成功しなかった。どんな助け?

select MobileNumber, count(*) 
from table1 
where timestamp > '2012-03-01 00:00' 
group by MobileNumber, LocID 
having count(*) = 1; 
+0

それはあなたが見せているあなたのデータの単一の行の場合は、スキーマが悪いのデザインのものであり、ご希望の結果が困難なことを行っています。代わりに、各MobileNumber、LocID自体に行がある場合は、非常に簡単です(実際はクエリが機能します)。 MobileNumber列の後にLocIDごとに複数の列があることを確認できますか? –

+0

LocNidが同じかどうかにかかわらず、特定のMobileNumberを持つ各行の数をカウントするか、別個のLocIDのみをカウントしますか?その回答はあなたの要件に一致する以下の回答を変更します – kaj

答えて

4

試してみてください。

select MobileNumber, count(*) 
from table1 
where timestamp > '2012-03-01 00:00' 
group by MobileNumber 
having count(distinct LocID) = 1; 
関連する問題