2015-06-18 5 views
0

У меня есть следующий кредит схема:Подсчет отдельных строк в MySQL

mysql> select * from borrower; 
+----------+---------+ 
| name  | loan_id | 
+----------+---------+ 
| Adams | L16  | 
| Curry | L93  | 
| Hayes | L15  | 
| Jackson | L14  | 
| Jones | L17  | 
| Smith | L11  | 
| Smith | L23  | 
| Williams | L17  | 
+----------+---------+ 
8 rows in set (0.00 sec) 

Мне нужно рассчитать общее количество кредитов, каждый человек взял. Я думал, что автообъединение является решением этой проблемы, и я попытался следующий запрос:

select T1.name, count(T2.name) from borrower T1, borrower T2 where T1.name = T2.name; 

Но я получаю странные результаты следующие:

mysql> select T1.name, count(T2.name) from borrower T1, borrower T2 where T1.name = T2.name; 
+-------+----------------+ 
| name | count(T2.name) | 
+-------+----------------+ 
| Adams |    10 | 
+-------+----------------+ 
1 row in set (0.00 sec) 
+1

Кажется, что простое имя группы GROUP BY - это то, что вы хотите. Почему вы хотите сделать самостоятельное соединение? –

+0

^^ Справа - соединение не нужно. Но вы избегаете ленивости MySQL с помощью команды GROUP BY (или ее отсутствия). –

ответ

2

Вы можете попробовать это:

select name, count(name) from borrower 
group by name 
Смежные вопросы