Mysql подсчитывает уникальные значения строк

TABLE quotation

id  clientid
1   25
2   25
3   25
4   25
5   26

Как я могу запросить, сколько разных клиентов существует в TABLE quotation? Я не хочу, чтобы повторяющиеся записи учитывались более одного раза.

Мне нужен ответ 2, в 1 строке, потому что единственные не дублированные записи: (25, 26).

Ответы

Ответ 2

Я нахожу выход

SELECT COUNT(*) as total FROM (SELECT COUNT(*) FROM quotation GROUP BY
clientid) t1

Ответ 3

Я попробовал следующее в базе данных 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;

Ответ 4

Если вы хотите подсчитать общее количество уникальных записей, это вернет число в столбце.

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

Ответ 5

SELECT clientid, COUNT(clientid) FROM quotation 
GROUP BY clientid