Как найти строки с разными статусами?
Помогите сформировать запрос. Есть таблица со следующей структурой:
hash|name|status
Нужной найти строки, у которых для одного и того же hash имеются статусы 0 и 1, а строки в которых у одного и того же hash имеется только один статус (0 или 1) не находить. Т.е. если у нас есть такие строки в таблице:
b6ea6556f7bb0eda180296901b012d2c|Vasya|1
b6ea6556f7bb0eda180296901b012d2c|Vasya|1
b6ea6556f7bb0eda180296901b012d2c|Vaska|0
938ac761f282f2b733b4b8e91eae2a47|Petya|0
938ac761f282f2b733b4b8e91eae2a47|Petya|0
На выходе мы должны получить только одну строку b6ea6556f7bb0eda180296901b012d2c|Vasya
Как правильно составить запрос?
Ответы (1 шт):
Автор решения: Akina
→ Ссылка
SELECT hash, name
FROM src_table
GROUP BY hash, name
HAVING COUNT(DISTINCT status) = 2
/* или, например */
/* HAVING MIN(status) != MAX(status) */