Как получить количество записей о статусе всех 1 - PullRequest
0 голосов
/ 29 апреля 2019

Я сохраняю изображение человека в одной таблице, у одного человека будет несколько изображений, каждое изображение будет иметь статус 1 или 0, нам нужно получить запись на основе статуса изображения. если статус изображения записи человека - все 1, то мы должны рассмотреть эту запись, если любой из статусов равен 0, тогда нам нужно пропустить запись из результата

Original Result

id psqno status
1   1     1
2   1     1
3   1     0
4   2     1
5   2     1
6   3     1
7   3     0
8   4     1
9   4     1


Expected Result

id psqno status
1    2     1
2    4     1

Я пробовал запрос, как показано ниже:

select count(distinct psqno) as image_record from users where status = 1

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

1 Ответ

0 голосов
/ 29 апреля 2019

Вы можете использовать условное агрегирование, чтобы найти группы, для которых не существует никакого другого статуса:

SELECT psqno
FROM t
GROUP BY psqno
HAVING COUNT(CASE WHEN status = 1 THEN 1 END) = COUNT(*) -- all rows have status = 1

Демонстрация на db <> fiddle

...