Как считать элементы, которые удовлетворяют условию «где» с несколькими критериями в одном столбце - PullRequest
1 голос
/ 17 февраля 2012

Я новичок в SQL и использую SQLite для анализа продаж в сети розничных магазинов.

В настоящее время я пытаюсь подсчитать количество транзакций, которые содержат разные категории товара. Соответствующими столбцами в моих данных являются uniqID (который предоставляет идентификатор транзакции) и категория. Каждый uniqID имеет одну строку для каждого элемента в этой транзакции, то есть транзакция из трех элементов будет иметь три строки. Каждая из этих строк будет иметь свою собственную категорию, например:

Категория uniqID 103 Брюки 103 Юбка 103 Юбка 104 джемпера 104 Юбка

Можно ли сделать функцию подсчета, которая подсчитывает количество уникальных транзакций, которые содержат две разные категории? Например, сколько транзакций содержало брюки и юбки? (В приведенном выше примере ответ должен быть 1!)

Я пробовал следующее:

выберите количество (отличный от уникального), где категория = брюки и категория = юбки;

Однако, он продолжает возвращать ответ как 0, что, я знаю, не соответствует действительности. Кто-нибудь может предложить способ переписать запрос?

Большое спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 17 февраля 2012

Если что, то должно быть

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

Поскольку категория в одном ряду не может иметь значение «брюки» И «юбки» одновременно.

0 голосов
/ 17 февраля 2012
В категории

не может быть двух разных значений одновременно, используйте 'или' вместо 'и'.

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