mySQL выбирает строку только если count() как col1 <> col2
Я использую следующий SQL-оператор:
SELECT Col1, count(*) as Col2, Col3
FROM table1
WHERE WeekEnding = '08/26/2012'
GROUP BY Col1
Получить
Col1 Col2 Col3
NY 2 2
FL 1 2
TX 1 2
NJ 1 2
WA 2 2
DE 1 3
MA 4 4
AL 3 3
Как я могу исключить записи, где COL2 = COL3, поэтому я получаю.
Col1 Col2 Col3
FL 1 2
TX 1 2
NJ 1 2
DE 1 3
2 ответа
Решение
Вы добавляете HAVING
- having
работает после group
готово. Where
работает до group
,
SELECT Col1, count(*) as Col2, Col3
FROM table1
WHERE WeekEnding = '08/26/2012'
GROUP BY Col1
HAVING Col2 != Col3
Примечание. Вы группируете по Col1, но не по Col3 - это недопустимо, поскольку вы запрашиваете Col3 в выходных данных.
Добавьте его в свой HAVING
пункт
SELECT Col1, count(*) as Col2, Col3
FROM table1
WHERE WeekEnding = '08/26/2012'
GROUP BY Col1
HAVING (count(*) <> col3)