Предположим, что database.tbl содержит два поля: фрукты и цена.Как написать MySQL, чтобы получить количество различных значений в таблице?
- Строка 1: фрукты = 'яблоко', цена = 0.60.
- Строка 2: фрукты = 'груша', цена = 0.60.
- Строка 3: фрукты = 'персик', цена = 0.50.
Я хочу, чтобы выполнить запрос, который возвращает количество различных значений для каждого поля, т.е. он должен возвращать
- фрукты 3
- цена 2
, потому что есть 3 фрукты, но только 2 отдельных цены.
Я попытался
SELECT C.COLUMN_NAME, COUNT(DISTINCT C.COLUMN_NAME) FROM tbl JOIN (SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='database' AND TABLE_NAME='tbl') AS C GROUP BY C.COLUMN_NAME;
но это возвращает:
- фрукты 1
- цена 1
Это только возврат 1, потому что вы считаете имя столбца, а не данные в столбце. Должно ли это работать, не зная, для каких столбцов вам нужен счет? –
Спасибо. Да, он должен работать, не зная столбцов заранее. Все, что он знает, это то, что он должен учитывать все столбцы. – oks
Допустимо ли использовать хранимую процедуру для генерации результатов? –