Выбор уникальной строки с подсчетом повторяющихся

Droniuz

Guest
Выбор уникальной строки с подсчетом повторяющихся

Что-то не докумекаю как сделать запрос одной строкой. Есть таблица, в ней поля:

id, num1, num2

в них значения:

1, 500, 10
2, 400, 10
3, 600, 20
4, 500, 10
5, 500, 33
6, 500, 10
7, 700, 10

Нужно сделать запрос по num2=10 и получить id первой строки с уникальным num1 и подсчитать кол-во строк где num1 такой же, т.е. результат запроса должен быть типа:

id, num2, num1, numberOfEntry
1, 10, 500, 3
2, 10, 400, 1
7, 10, 700, 1

Понятно, что можно через временную таблицу, да даже через перебор полученного из SELECT * FROM tbl WHERE num2=10, но хочется элегантности и меньшей нагрузки на сервак.
 

Demiurg

Guest
а ты думаешь один монстроидальный запрос будет элегантнее и проще для сервера, чем 2 простеньких ?
 

Nime

Guest
select min(id), num1, count(*) from table where num2=10 group by num1

не об этом речь?
 

Droniuz

Guest
Nime

Спасиб. Кажись твой запрос все правильно возвращает.
Я так и думал, что как-то просто должно быть.

Еще раз спасибо!
 
Сверху