2015-03-04 5 views
0

Я пытаюсь получить количество строк, сгруппированных в каждой из строк результатов. Например:Mysql как получить количество строк, сгруппированных в группу по оператору

SELECT * FROM таблицы GROUP BY ТрансИд, другой ид на следующей таблице

id  transid other id 
------------------------------ 
|1  |1  |1  | 
|2  |1  |1  | 
|3  |1  |1  | 
|4  |1  |2  | 
|5  |1  |2  | 
|6  |1  |2  | 
|7  |2  |1  | 
|8  |2  |1  | 
|9  |2  |2  | 
|10  |3  |1  | 
|11  |3  |1  | 

РЕЗУЛЬТАТ:

id  transid other id 
------------------------------ 
|1  |1  |1  | 
|4  |1  |2  | 
|7  |2  |1  | 
|10  |2  |2  | 
|11  |3  |1  | 

Как я могу получить:

id  transid other id count 
------------------------------------- 
|1  |1  |1  | 3 
|4  |1  |2  | 3 
|7  |2  |1  | 2 
|9  |2  |2  | 1 
|10  |3  |1  | 2 

Спасибо вы.

ответ

1

Выберите min(id) сгруппированных набора и использовать count(), чтобы получить набор подсчитывать

Select min(id), transid, [other id], count(*) count 
from table 
Group by transid, [other id] 
0

Если все, что вы пытаетесь сделать, это подсчитать, сколько раз есть дубликат, вы можете просто сделать

Select Count(*), col1, col2 from tbl 
group by col1, col2 
Смежные вопросы