Ответ 1
select count(distinct clientid) from quotation
TABLE quotation
id clientid
1 25
2 25
3 25
4 25
5 26
Как я могу запросить, сколько разных клиентов существует в TABLE quotation
? Я не хочу, чтобы повторяющиеся записи учитывались более одного раза.
Мне нужен ответ 2
, в 1 строке, потому что единственные не дублированные записи: (25
, 26
).
select count(distinct clientid) from quotation
Я нахожу выход
SELECT COUNT(*) as total FROM (SELECT COUNT(*) FROM quotation GROUP BY
clientid) t1
Я попробовал следующее в базе данных MySQL 5.x.
id - целое число, а clientid - целое число. Я заселен двумя строками:
id clientid
1 25
2 25
Этот SQL-запрос будет печатать строки, имеющие ровно два элемента:
select * from test1 group by clientid having count(*) = 2;
Если вы хотите два или более элемента, замените = 2
в приведенном выше примере на >= 2
.
select * from test1 group by clientid having count(*) >= 2;
Если вы хотите подсчитать общее количество уникальных записей, это вернет число в столбце.
SELECT COUNT(*) as total FROM (SELECT COUNT(*) FROM quotation GROUP BY clientid having count(*) > 1) t1
Если вы хотите подсчитать общее количество записей с повторяющимися строками, используйте следующий mysql.
SELECT COUNT(*) as total FROM (SELECT COUNT(*) FROM quotation GROUP BY clientid having count(*) >= 2) t1
SELECT clientid, COUNT(clientid) FROM quotation
GROUP BY clientid