2010-04-13 2 views
7

скажем MySQL это что-то вроде этогоMySQL группа по и сосчитать проблемы строк

select x,y 
from xx 
group by y 

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

как это сделать?

Благодаря

+0

Вы хотите знать, сколько строк в каждой группе? Или сколько строк во всех группах? Или сколько групп? – keithjgrant

+0

все строки, которые этот выбор возвращает – trrrrrrm

ответ

14

Вы можете обернуть свой запрос так:

SELECT COUNT(*) FROM 
    (select x,y 
    from xx 
    group by y) sub; 
+3

Любая идея, как это можно сделать, если сервер MySQL не отвечает на подзапросы? –

0

Предположим, у вас есть таблица с содержимым, приведенным ниже:

------------------- 
| ID | NAME | GROUP | 
+-------------------+ 
| 1 | A | 1 | 
+-------------------+ 
| 2 | B | 2 | 
+-------------------+ 
| 3 | C | 2 | 
+-------------------+ 
| 4 | D | 3 | 
+-------------------+ 
| 5 | E | 1 | 
+-------------------+ 
| 6 | F | 3 | 
+-------------------+ 

Следующая само LEFT JOIN подсчитывает количество различные значения в GROUP.

SELECT COUNT(*) 
FROM table AS t1 
LEFT JOIN table AS t2 ON t2.GROUP = t1.GROUP AND t2.ID > t1.ID 
WHERE t2.id IS NULL; 

Этот запрос выполняет поиск для каждой группы элемента с наивысшим идентификатором.

Смежные вопросы