2012-02-17 5 views
1

私はSQLを初めて使用しており、SQLiteを使用して小売店チェーンの販売分析を実行しています。同じ列に複数の基準を持つ 'where'条件を満たすアイテムを数える方法

現在、アイテムの異なるカテゴリを含むトランザクションの数をカウントしようとしています。私のデータの関連する列はuniqID(トランザクションIDを提供する)とカテゴリです。各uniqIDには、そのトランザクションの各項目に対して1つの行があります。つまり、3つの項目のトランザクションは3つの行を持ちます。これらの行はそれぞれ、すなわち、独自のカテゴリを持っているでしょう:

uniqIDカテゴリ 103パンツ 103スカート 103スカート 104スカート

はの数をカウントし、カウント機能を行うことが可能です104ジャンパー2つの異なるカテゴリを含むユニークなトランザクション?たとえば、ズボンとスカートを含むトランザクションの数はいくつですか? (!上記の例では、答えは1でなければなりません)

私は次のことを試してみました:

SELECT COUNT(個別のuniqID)カテゴリ=ズボンとカテゴリ=スカート。

しかし、回答は0として返されますが、私はそれが本当ではないことを知っています。誰もクエリの言い直しの方法を提案することはできますか?

ありがとうございました!

+0

うーん、私のデータの例は、実際に働いていない - 私は左の列にIDと右側の列のカテゴリを持つテーブルを作成しようとしていた... – EAndrews

+0

は、はい、それはもちろん可能ですが、どのようにあなたが知っていますそれは真実ではない? yourtableからselect *を試しました。category =ズボンとcategory = skirts; '? (あなたのSQLクエリに 'FROM'キーワードがありません) – m0skit0

答えて

0

カテゴリは、同時に2つの異なる値を持つことはできません。 'and'の代わりに 'or'を使用してください。

select count (distinct uniqID) where category = trousers or category = skirts; 
0

どちらかといえば1行のカテゴリが同時に値「ズボン」AND「スカート」を持つことができないので、それは

select count (distinct uniqID) where category = 'trousers' OR category = 'skirts'; 

でなければなりません。

関連する問題