Сортировать ГРУППА ПО агрегатам - PullRequest
0 голосов
/ 15 ноября 2011

Представьте себе эту таблицу t1,

+----------+-------+--------+
| group_id |  name |  age   |
+----------+-------+--------+
|    1     |   A1  |   1    |
|    1     |   A2  |   2    |
|    1     |   A3  |   3    |
|    2     |   B1  |   4    |
+----------+-------+--------+

Используя следующий запрос в MySQL,

SELECT group_id, name, COUNT(*) FROM t1 GROUP BY group_id

получаем,

+----------+-------+--------+----------+
| group_id |  name |  age   | COUNT(*) |
+----------+-------+--------+----------+
|    1     |   A1  |   2    |    3     |
|    2     |   B1  |   4    |    1     |
+----------+-------+--------+----------+

Как вы можете видеть здесь, возможно, что значения name = A1 и age = 2 не из одной записи.


У меня вопрос: как я могу контролировать, какие отдельные результаты отображаются в столбцах name и age, поэтому содержимое из одной записи? Есть ли способ как-то их отсортировать? Пример сортировки по возрасту в обратном порядке даст

+----------+-------+--------+----------+
| group_id |  name |  age   | COUNT(*) |
+----------+-------+--------+----------+
|    1     |   A3  |   3    |    3     |
|    2     |   B1  |   4    |    1     |
+----------+-------+--------+----------+

Спасибо.

Ответы [ 3 ]

1 голос
/ 15 ноября 2011

Я не знаю, почему вы говорите, что ваш запрос работает.Вы также должны группировать по имени ...

SELECT group_id, name, COUNT(*) FROM t1 GROUP BY group_id, name

Если вы хотите получить только один из них, попробуйте:

SELECT group_id, MIN(name), COUNT(*) FROM t1 GROUP BY group_id
0 голосов
/ 15 ноября 2011

Я не знаю о полном контроле, но вы можете сделать это

SELECT student_name, MIN(test_score), MAX(test_score)
        FROM student
        GROUP BY student_name;
0 голосов
/ 15 ноября 2011
SELECT group_id, name, COUNT(*)
FROM t1 
WHERE name IN ( 'xxx', 'yyy', ..., 'zzz' )
GROUP BY group_id
SORT BY COUNT(*)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...