Я хочу вернуть все строки, которые имеют определенное значение в столбце и имеют более 5 экземпляров, в которых число является определенным значением. Например, я хотел бы вернуть все строки условия, в котором, если значение в столбце M имеет число 1 в нем, и есть 5 или более экземпляров M, имеющих число 1 в нем, тогда он будет возвращать все строки с этим условием.Возвращает запрос, когда количество запросов больше числа?
select *
from tab
where M = 1
group by id --ID is the primary key of the table
having count(M) > 5;
EDIT: Вот моя таблица:
id | M | price
--------+-------------+-------
1 | | 100
2 | 1 | 50
3 | 1 | 30
4 | 2 | 20
5 | 2 | 10
6 | 3 | 20
7 | 1 | 1
8 | 1 | 1
9 | 1 | 1
10 | 1 | 1
11 | 1 | 1
Первоначально я просто хочу, чтобы вставить в триггер, так что, если число М = 1 является больше 5, то я хочу, чтобы создать исключение. Запрос, который я попросил, будет вставлен в триггер. END EDIT.
Но мой стол всегда пуст. Может кто-нибудь мне помочь? Благодаря!
IIRC 'GROUP BY' the PK всегда имеет COUNT = 1 – Alex
схема с заполненной таблицей + желаемый о/р поможет –