Как выбрать данные, где сумма больше, чем х - PullRequest
1 голос
/ 02 февраля 2012

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

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

Я хочу выбрать только те корзины, в которых клиент купил более 1 товара.

Можно ли в SQLite выбрать уникальный идентификатор транзакции и сумму количества, но только для уникальных идентификаторов транзакции, где количество больше одного?

Пока я пробовал:

select uniqID, sum(qty) from salesdata where sum(qty) > 1 group by uniqID;

Но SQLite выдает ошибку 'неправильное использование агрегата: sum ()'

Извините, если это простой вопрос, но я изо всех сил пытаюсь найти нужную информацию, прибегая к помощи!

Ответы [ 2 ]

11 голосов
/ 02 февраля 2012

Попробуйте

select uniqID, sum(qty) from salesdata group by uniqID having sum(qty) > 1

"where" нельзя использовать в агрегатных функциях - в этом случае вы можете использовать where только на uniqId.

1 голос
/ 02 февраля 2012

, если вы хотите поставить какое-либо условие на результат, который вы получаете с группой, которую вы используете, используйте.

select uniqID, sum(qty) as sumqty from salesdata group by uniqID having sumqty > 1

Вы можете поставить любое условие, имея нормальное положение, как и где.

having sumqty = 1 ,having sumqty < 1 ,having sumqty IN (1,2,3) etc..
...